odysseyscience/react-s3-uploader 705
React component that renders an <input type="file"/> and automatically uploads to an S3 bucket
seanadkinson/react-pdx-react-router 4
Code used for react-router presentation at React PDX on Feb 10, 2015
common react charting components using chart.js
Java API for CouchDB
Addon for Ektorp (ekorp.org) that enables searching couchdb with couchdb-lucene
Leaner CSS, in your browser.
seanadkinson/pdxjs-webpack-examples 1
Examples used when speaking at PDX JS on Wednesday, September 24th, 2014.
Swagger UI is a dependency-free collection of HTML, Javascript, and CSS assets that dynamically generate beautiful documentation from a Swagger-compliant API.
seanadkinson/beeswithmachineguns 0
A utility for arming (creating) many bees (micro EC2 instances) to attack (load test) targets (web applications).
Pull request review commentstreem/streem-sdk-ios
Once you've retrieved this 9-digit code in your app you will follow two steps. companyLogoURL: details.company.logoUrl ) - Streem.sharedInstance.startRemoteStreem(+ (
Not needed?
comment created time in 18 days
push eventstreem/react-native-select-contact
commit sha 4f0c93582d6353dd815c74dacac94d53485de2c1
Create react-native-select-contact.podspec
commit sha 3d58bd3a625b0d9cb0f7ddc56a5afec626651b4e
Merge pull request #33 from geebrown43/patch-1 Create react-native-select-contact.podspec
push time in a month
PR merged streem/react-native-select-contact
Add podspec to project auto-linking purposes
pr closed time in a month
pull request commentstreem/react-native-select-contact
Create react-native-select-contact.podspec
Thanks!
comment created time in a month
push eventstreem/streem-sdk-ruby
commit sha 9c91e2611b205ab532d2ec5a1acfa668b178953f
Note on expiration dates
push time in 2 months
push eventstreem/streem-sdk-ruby
commit sha 45a69c9337cf19e2fc3e955ce00af6cd0f7c2600
Updated readme
push time in 2 months
push eventstreem/streem-sdk-ruby
commit sha 24edd48b48e89fc272d9a0a1bb2f2997c4e90cbb
Initial readme
push time in 2 months
created repositorystreem/streem-sdk-ruby
Documentation and Issue tracking for the Streem SDK for Ruby
created time in 2 months
startedw3c/webrtc-insertable-streams
started time in 2 months
Pull request review commentckolbeck/kotlin-tag-server
+package dev.cbeck.tags++import com.fasterxml.jackson.module.kotlin.KotlinModule+import com.google.inject.Guice+import com.google.inject.Stage+import dev.cbeck.tags.http.PBSerDeModule+import dev.cbeck.tags.http.TagResource+import io.dropwizard.Application+import io.dropwizard.jdbi3.JdbiFactory+import io.dropwizard.setup.Bootstrap+import io.dropwizard.setup.Environment+import java.lang.RuntimeException++class TagServer : Application<TagConfiguration>() {+ override fun initialize(bootstrap: Bootstrap<TagConfiguration>?) {+ bootstrap?.objectMapper?.registerModule(KotlinModule())+ bootstrap?.objectMapper?.registerModule(PBSerDeModule())+ }++ override fun getName(): String {+ return "tag-server"+ }
Since you asked for kotlin tips in your message, this could just be:
override fun getName() = "tag-server"
comment created time in 2 months
Pull request review commentckolbeck/kotlin-tag-server
+package dev.cbeck.tags++import com.fasterxml.jackson.module.kotlin.KotlinModule+import com.google.inject.Guice+import com.google.inject.Stage+import dev.cbeck.tags.http.PBSerDeModule+import dev.cbeck.tags.http.TagResource+import io.dropwizard.Application+import io.dropwizard.jdbi3.JdbiFactory+import io.dropwizard.setup.Bootstrap+import io.dropwizard.setup.Environment+import java.lang.RuntimeException++class TagServer : Application<TagConfiguration>() {+ override fun initialize(bootstrap: Bootstrap<TagConfiguration>?) {
When kotlin generates stubs for non-kotlin classes, they assume everything is optional (which seems reasonable), but if you know its not, you can remove the ?. In this case, and down in run() on line 24, drop the optionals
comment created time in 2 months
issue openedFusionAuth/fusionauth-issues
Kickstart error part way through - SocketTimeoutException: Read timed out
Kickstart error part way through - SocketTimeoutException: Read timed out
Description
We had an error occur in the middle of a kickstart run in one of our environments. It was a SocketTimeoutException. The first request to create the API Key was successful, but not the second to create the admin user (actually the request was completed successfully, but kickstart didnt know that and errored out).
Possibly need a longer timeout, or at least a way to make it configurable for kickstart.
Since the API Key created successfully, additional restarts couldn't complete the rest of the kickstarts. We had to delete the DB and restart.
Affects versions
Docker on ECS, app version 1.18.3
Steps to reproduce
Kickstart file:
{
"variables": {
"apiKey": "#{ENV.FUSIONAUTH_API_KEY}",
"defaultThemeId": "75a068fd-e94b-451a-9aeb-3ddb9a3b5987",
"issuer": "#{ENV.FUSIONAUTH_ISSUER}",
"streemTenantId": "#{ENV.FUSIONAUTH_STREEM_TENANT_ID}",
"streemThemeId": "#{ENV.FUSIONAUTH_STREEM_THEME_ID}",
"adminEmail": "#{ENV.FUSIONAUTH_ADMIN_EMAIL}",
"adminPassword": "#{ENV.FUSIONAUTH_ADMIN_PASSWORD}",
"emailFromAddress": "#{ENV.FUSIONAUTH_EMAIL_FROM_ADDRESS}",
"emailFromName": "#{ENV.FUSIONAUTH_EMAIL_FROM_NAME}",
"emailHost": "#{ENV.FUSIONAUTH_EMAIL_HOST}",
"emailUsername": "#{ENV.FUSIONAUTH_EMAIL_USERNAME}",
"emailPassword": "#{ENV.FUSIONAUTH_EMAIL_PASSWORD}",
"googleAuthClientId": "#{ENV.GOOGLE_AUTH_CLIENT_ID}",
"googleAuthClientSecret": "#{ENV.GOOGLE_AUTH_CLIENT_SECRET}"
},
"apiKeys": [
{
"key": "#{apiKey}"
}
],
"requests": [
{
"method": "POST",
"url": "/api/user/registration",
"body": {
"user": {
"email": "#{adminEmail}",
"password": "#{adminPassword}"
},
"registration": {
"applicationId": "#{FUSIONAUTH_APPLICATION_ID}",
"roles": ["admin"]
}
}
},
{
"method": "PATCH",
"url": "/api/tenant/#{FUSIONAUTH_TENANT_ID}",
"body": {
"tenant": {
"issuer": "#{issuer}",
"emailConfiguration": {
"host": "#{emailHost}",
"port": 587,
"username": "#{emailUsername}",
"password": "#{emailPassword}",
"security": "TLS",
"defaultFromName": "#{emailFromName}",
"defaultFromEmail": "#{emailFromAddress}"
}
}
}
},
{
"method": "POST",
"url": "/api/tenant/#{streemTenantId}",
"body": {
"sourceTenantId": "#{FUSIONAUTH_TENANT_ID}",
"tenant": {
"name": "streem"
}
}
},
{
"method": "POST",
"url": "/api/theme/#{streemThemeId}",
"body": {
"sourceThemeId": "#{defaultThemeId}",
"theme": {
"name": "streem"
}
}
},
{
"method": "POST",
"url": "/api/identity-provider",
"body": {
"identityProvider": {
"buttonText": "Login with Google",
"client_id": "#{googleAuthClientId}",
"client_secret": "#{googleAuthClientSecret}",
"debug": true,
"enabled": true,
"scope": "openid profile email",
"type": "Google"
}
}
}
]
}
Logs:
...
2020-08-10T13:33:34.154-07:00 | Aug 10, 2020 8:33:34.154 PM INFO io.fusionauth.api.service.system.kickstart.KickstartRunner - Waiting for FusionAuth to complete startup in order to begin kickstart...
-- | --
| 2020-08-10T13:33:34.260-07:00 | Aug 10, 2020 8:33:34.260 PM INFO com.inversoft.migration.Migrator - Run Cleanup [io.fusionauth.api.migration.guice.Migration_1_13_0]
| 2020-08-10T13:33:34.843-07:00 | Aug 10, 2020 8:33:34.843 PM INFO com.inversoft.migration.Migrator - Run Once [io.fusionauth.api.migration.guice.Migration_1_15_3]
| 2020-08-10T13:33:34.849-07:00 | Aug 10, 2020 8:33:34.848 PM INFO com.inversoft.migration.Migrator - Run Cleanup [io.fusionauth.api.migration.guice.Migration_1_15_3]
| 2020-08-10T13:33:41.163-07:00 | Aug 10, 2020 8:33:41.162 PM ERROR io.fusionauth.api.service.system.kickstart.KickstartRunner - Failed to execute request to [POST][/api/user/registration] Status [-1]
| 2020-08-10T13:33:41.163-07:00 | Request body:
| 2020-08-10T13:33:41.163-07:00 | {
| 2020-08-10T13:33:41.163-07:00 | "registration" : {
| 2020-08-10T13:33:41.163-07:00 | "applicationId" : "3c219e58-ed0e-4b18-ad48-f4f92793ae32",
| 2020-08-10T13:33:41.163-07:00 | "roles" : [ "admin" ]
| 2020-08-10T13:33:41.163-07:00 | },
| 2020-08-10T13:33:41.163-07:00 | "user" : {
| 2020-08-10T13:33:41.163-07:00 | "email" : "...",
| 2020-08-10T13:33:41.163-07:00 | "password" : "..."
| 2020-08-10T13:33:41.163-07:00 | }
| 2020-08-10T13:33:41.163-07:00 | }
| 2020-08-10T13:33:41.243-07:00 | Aug 10, 2020 8:33:41.242 PM ERROR io.fusionauth.api.service.system.kickstart.KickstartRunner - Exception returned
| 2020-08-10T13:33:41.243-07:00 | java.net.SocketTimeoutException: Read timed out
| 2020-08-10T13:33:41.243-07:00 | at java.base/sun.nio.ch.NioSocketImpl.timedRead(NioSocketImpl.java:283)
| 2020-08-10T13:33:41.243-07:00 | at java.base/sun.nio.ch.NioSocketImpl.implRead(NioSocketImpl.java:309)
| 2020-08-10T13:33:41.243-07:00 | at java.base/sun.nio.ch.NioSocketImpl.read(NioSocketImpl.java:350)
| 2020-08-10T13:33:41.243-07:00 | at java.base/sun.nio.ch.NioSocketImpl$1.read(NioSocketImpl.java:803)
| 2020-08-10T13:33:41.243-07:00 | at java.base/java.net.Socket$SocketInputStream.read(Socket.java:982)
| 2020-08-10T13:33:41.243-07:00 | at java.base/java.io.BufferedInputStream.fill(BufferedInputStream.java:244)
| 2020-08-10T13:33:41.243-07:00 | at java.base/java.io.BufferedInputStream.read1(BufferedInputStream.java:284)
| 2020-08-10T13:33:41.243-07:00 | at java.base/java.io.BufferedInputStream.read(BufferedInputStream.java:343)
| 2020-08-10T13:33:41.243-07:00 | at java.base/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:754)
| 2020-08-10T13:33:41.243-07:00 | at java.base/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:689)
| 2020-08-10T13:33:41.243-07:00 | at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1618)
| 2020-08-10T13:33:41.243-07:00 | at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1523)
| 2020-08-10T13:33:41.243-07:00 | at java.base/java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:527)
| 2020-08-10T13:33:41.243-07:00 | at com.inversoft.rest.RESTClient.go(RESTClient.java:218)
| 2020-08-10T13:33:41.243-07:00 | at io.fusionauth.api.service.system.kickstart.KickstartRunner.run(KickstartRunner.java:115)
| 2020-08-10T13:33:41.243-07:00 | at java.base/java.lang.Thread.run(Thread.java:832)
...
Expected behavior
Kickstart completes successfully if possible.
Screenshots
N/A
Platform
- Device: Server on AWS ECS
- OS: Docker
- Browser + version: N/A
- Database PostgresSQL 10, using DB search, not elasticsearch
Additional context
This was running in ECS as a container configured with 1gb memory, 1/2 cpu. I realized I didn't set FUSIONAUTH_MEMORY, so FA didn't know about the additional memory available.
created time in 2 months
push eventstreem/streem-www
commit sha e2c55aad331cb53f7396ffae8c6a4f1763f3c5cb
Add some gtags
commit sha e793c07d32f7f1a9848e7b01e29910789fcd12b7
Merge pull request #16 from streem/misc/ga-tags Add some gtags
push time in 3 months
Pull request review commentstreem/pbandk
Improve JSON support; move most ser/deser from generated code into runtime library
+package pbandk.internal.binary++import pbandk.*+import pbandk.protobufjs.Writer+import pbandk.protobufjs.protobufjsLong++private fun Writer.writeValueNoTag(type: FieldDescriptor.Type, value: Any) {
Yes, sorry, I understand the different between the JSON and the Binary - bad example specifying JsonValueMarshaller in my comment.
The point I was trying to make was that it seemed like there was a lot of duplicate work being done in this jsMain module, that is already done in commonMain, but looking closer, this probably isn't the case. I guess I just saw enough when statements that rolled through each type, either reading or writing the value, and I thought we wouldn't need to do that outside of commonMain. But if I understand correctly, this code is just providing the javascript bindings of doing the actual reading/writing, and code up in commonMain is using this marshaller for doing the work in javascript. Is my understanding correct?
comment created time in 3 months
Pull request review commentstreem/pbandk
Improve JSON support; move most ser/deser from generated code into runtime library
+package pbandk.internal.binary++import pbandk.*+import pbandk.protobufjs.Writer+import pbandk.protobufjs.protobufjsLong++private fun Writer.writeValueNoTag(type: FieldDescriptor.Type, value: Any) {
Is this code unable to use the JsonValueMarshaller and related classes from commonMain? I guess I'm unclear about the relation of this class (and CodedStreamBinaryWireMarshaller below) to the ones in commonMain.
comment created time in 3 months
Pull request review commentstreem/pbandk
Improve JSON support; move most ser/deser from generated code into runtime library
+package pbandk.internal.json++import kotlinx.serialization.json.*+import pbandk.*+import pbandk.json.JsonConfig+import pbandk.wkt.*+import kotlin.Any+import kotlin.reflect.KProperty1++internal class JsonMessageMarshaller(private val jsonConfig: JsonConfig) : MessageMarshaller {+ private val json = Json(+ JsonConfiguration.Stable.copy(+ prettyPrint = true+ )+ )+ private val jsonValueMarshaller = JsonValueMarshaller(jsonConfig)+ private var currentMessage: JsonElement? = null++ fun toJsonString(): String = currentMessage?.let { json.stringify(JsonElementSerializer, it) }.orEmpty()++ internal fun toJsonElement(): JsonElement =+ currentMessage ?: error("Must call writeMessage() before toJsonElement()")++ override fun <T : Message> writeMessage(message: T) {+ check(currentMessage == null) { "JsonWireMarshaller can't be reused with multiple messages" }+ currentMessage = when (message) {+ // Wrapper types use the same JSON representation as the wrapped value+ // https://developers.google.com/protocol-buffers/docs/proto3#json+ is DoubleValue -> writeWrapperValue(message, message.value)+ is FloatValue -> writeWrapperValue(message, message.value)+ is Int64Value -> writeWrapperValue(message, message.value)+ is UInt64Value -> writeWrapperValue(message, message.value)+ is Int32Value -> writeWrapperValue(message, message.value)+ is UInt32Value -> writeWrapperValue(message, message.value)+ is BoolValue -> writeWrapperValue(message, message.value)+ is StringValue -> writeWrapperValue(message, message.value)+ is BytesValue -> writeWrapperValue(message, message.value)+ // Other well-known types with special JSON encoding+ is Timestamp -> jsonValueMarshaller.writeString(Util.timestampToString(message))+ // All other message types+ else -> writeMessageObject(message)+ }+ }
So simple 🎉
comment created time in 3 months
Pull request review commentstreem/pbandk
Improve JSON support; move most ser/deser from generated code into runtime library
+package pbandk.internal.binary++import pbandk.*+import pbandk.wkt.*+import kotlin.Any+import kotlin.reflect.KProperty1++internal open class BinaryMessageMarshaller(private val wireMarshaller: BinaryWireMarshaller) : MessageMarshaller {+ override fun <T : Message> writeMessage(message: T) {+ for (fd in message.fieldDescriptors) {+ @Suppress("UNCHECKED_CAST")+ val value = (fd.value as KProperty1<T, *>).get(message)++ if (!fd.type.hasPresence && fd.type.isDefaultValue(value)) {+ continue+ }++ value?.let { writeFieldValue(fd.number, fd.type, it) }+ }++ for (field in message.unknownFields.values) {+ writeUnknownFieldValue(field.fieldNum, field.value)+ }+ }++ private fun writeFieldValue(fieldNum: Int, type: FieldDescriptor.Type, value: Any) {+ when (type) {+ is FieldDescriptor.Type.Primitive<*> -> wireMarshaller.writePrimitiveValue(fieldNum, type, value)++ is FieldDescriptor.Type.Message<*> -> when (type.messageCompanion) {+ DoubleValue.Companion -> writeWrapperValue(fieldNum, type, value as Double, Sizer::doubleSize)+ FloatValue.Companion -> writeWrapperValue(fieldNum, type, value as Float, Sizer::floatSize)+ Int64Value.Companion -> writeWrapperValue(fieldNum, type, value as Long, Sizer::int64Size)+ UInt64Value.Companion -> writeWrapperValue(fieldNum, type, value as Long, Sizer::uInt64Size)+ Int32Value.Companion -> writeWrapperValue(fieldNum, type, value as Int, Sizer::int32Size)+ UInt32Value.Companion -> writeWrapperValue(fieldNum, type, value as Int, Sizer::uInt32Size)+ BoolValue.Companion -> writeWrapperValue(fieldNum, type, value as Boolean, Sizer::boolSize)+ StringValue.Companion -> writeWrapperValue(fieldNum, type, value as String, Sizer::stringSize)+ BytesValue.Companion -> writeWrapperValue(fieldNum, type, value as ByteArr, Sizer::bytesSize)+ else -> writeMessageValue(fieldNum, value as Message)+ }+ is FieldDescriptor.Type.Enum<*> -> wireMarshaller.writeEnum(fieldNum, value as Message.Enum)++ is FieldDescriptor.Type.Repeated<*> -> writeRepeatedValue(+ fieldNum,+ value as List<*>,+ type.valueType,+ type.packed+ )++ is FieldDescriptor.Type.Map<*, *> -> writeMapValue(fieldNum, value as Map<*, *>, type)+ }+ }++ private fun <T : Any> writeWrapperValue(+ fieldNum: Int,+ type: FieldDescriptor.Type.Message<*>,+ value: T,+ sizeFn: (T) -> Int+ ) {+ val valueType = type.messageCompanion.fieldDescriptors[0].type+ if (valueType.isDefaultValue(value)) {
Theres another default value check up on line 14. Is one of these not needed?
comment created time in 3 months
Pull request review commentstreem/pbandk
Improve JSON support; move most ser/deser from generated code into runtime library
open class CodeGenerator(val file: File, val kotlinTypeMappings: Map<String, Str } else if (field.type == File.Field.Type.MESSAGE) { line("${field.kotlinFieldName} = " + "${field.kotlinFieldName}?.plus(plus.${field.kotlinFieldName}) ?: plus.${field.kotlinFieldName},")- } else if (file.version == 2 && field.optional) {+ } else if (field.hasPresence) {
hasPresence means that its optional?
comment created time in 3 months
issue openedFusionAuth/fusionauth-issues
Kickstart Email Template doesn't allow usage of tenant fields
Kickstart Email Template doesn't allow usage of tenant fields
Description
When using Kickstart to create a Forgot Password email template, I'd like to use the tenant.issuer variable, but I get the following error:
fusionauth_1 | Jul 23, 2020 8:50:21.926 AM ERROR io.fusionauth.api.service.system.kickstart.KickstartRunner - Failed to execute request to [POST][/api/email/template/0502df1e-4010-4b43-b571-d423fce978b2] Status [400]
fusionauth_1 | Request body:
fusionauth_1 | {
fusionauth_1 | "emailTemplate" : {
fusionauth_1 | "defaultHtmlTemplate" : "To change your password click on the following link.\n<p>\n <a href=\"https://${tenant.issuer!''}/password/change/${changePasswordId}?tenantId=${user.tenantId}\">\n https://${tenant.issuer!''}/password/change/${changePasswordId}?tenantId=${user.tenantId}\n </a>\n</p>\n- FusionAuth Admin\n",
fusionauth_1 | "defaultSubject" : "Reset your password",
fusionauth_1 | "defaultTextTemplate" : "To change your password click on the following link.\n\nhttps://${tenant.issuer!''}/password/change/${changePasswordId}?tenantId=${user.tenantId}\n\n- FusionAuth Admin\n",
fusionauth_1 | "name" : "Forgot Password"
fusionauth_1 | }
fusionauth_1 | }
Documentation shows tenant with "AVAILABLE SINCE 1.18.2", so it should be accessible.
Affects versions
I'm using FusionAuth version 1.18.2, and have not tried earlier versions.
Steps to reproduce
- Create a kickstarter file that utilizes an Email Template for a Forgot Password email
- Use the
tenant.issuerfield in the template - Start FusionAuth
- See error
Expected behavior
Allow the tenant.issuer field to be used, since it's documented here
Platform
Running via docker on a Macbook Pro, Postrgres database
created time in 3 months