├── .classpath ├── .github └── workflows │ ├── deployment-dev.yml │ ├── deployment.yml │ ├── docker-hub-keycloak.yml │ ├── docker-hub.yml │ ├── gradle.yml │ └── snyk.yml ├── .gitignore ├── .settings ├── org.eclipse.buildship.core.prefs ├── org.eclipse.core.resources.prefs └── org.eclipse.jdt.core.prefs ├── .snyk ├── CHANGELOG.md ├── INSTALL.md ├── LICENSE ├── README.md ├── SAM-CLI-with-FormKiQ-Document-Event.png ├── actions ├── .checkstyle ├── .classpath ├── .gitignore ├── .settings │ ├── org.eclipse.buildship.core.prefs │ ├── org.eclipse.core.resources.prefs │ ├── org.eclipse.jdt.core.prefs │ └── org.eclipse.jdt.ui.prefs ├── build.gradle ├── config │ └── checkstyle │ │ ├── checkstyle.xml │ │ ├── import-control.xml │ │ └── mysuppressions.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── formkiq │ │ │ └── module │ │ │ └── actions │ │ │ ├── Action.java │ │ │ ├── ActionIndexComparator.java │ │ │ ├── ActionParameters.java │ │ │ ├── ActionStatus.java │ │ │ ├── ActionType.java │ │ │ ├── DocumentWorkflowRecord.java │ │ │ ├── Queue.java │ │ │ └── services │ │ │ ├── ActionStatusPredicate.java │ │ │ ├── ActionTypePredicate.java │ │ │ ├── ActionsNotificationService.java │ │ │ ├── ActionsNotificationServiceExtension.java │ │ │ ├── ActionsNotificationServiceImpl.java │ │ │ ├── ActionsService.java │ │ │ ├── ActionsServiceDynamoDb.java │ │ │ ├── ActionsServiceExtension.java │ │ │ ├── ActionsValidator.java │ │ │ ├── ActionsValidatorImpl.java │ │ │ ├── DynamicObjectToAction.java │ │ │ └── MapToAction.java │ └── resources │ │ └── .gitkeep │ └── test │ ├── java │ └── com │ │ └── formkiq │ │ └── module │ │ └── actions │ │ ├── ActionsServiceDynamoDbTest.java │ │ └── services │ │ ├── ActionsNotificationServiceImplTest.java │ │ └── ActionsValidatorTest.java │ └── resources │ └── .gitkeep ├── architecture.svg ├── aws-cognito-identity ├── .checkstyle ├── .classpath ├── .gitignore ├── build.gradle ├── config │ └── checkstyle │ │ ├── checkstyle.xml │ │ ├── import-control.xml │ │ └── mysuppressions.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── formkiq │ │ │ └── aws │ │ │ └── cognito │ │ │ ├── CognitoIdentityConnectionBuilder.java │ │ │ └── CognitoIdentityService.java │ └── resources │ │ └── .gitkeep │ └── test │ └── java │ └── .gitkeep ├── aws-cognito-identityprovider ├── .checkstyle ├── .classpath ├── .gitignore ├── build.gradle ├── config │ └── checkstyle │ │ ├── checkstyle.xml │ │ ├── import-control.xml │ │ └── mysuppressions.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── formkiq │ │ │ └── aws │ │ │ └── cognito │ │ │ ├── CognitoIdentityProviderConnectionBuilder.java │ │ │ ├── CognitoIdentityProviderService.java │ │ │ └── CognitoIdentityProviderServiceExtension.java │ └── resources │ │ └── .gitkeep │ └── test │ └── java │ └── .gitkeep ├── aws-dynamodb ├── .checkstyle ├── .classpath ├── .gitignore ├── .settings │ ├── org.eclipse.buildship.core.prefs │ ├── org.eclipse.core.resources.prefs │ ├── org.eclipse.jdt.core.prefs │ └── org.eclipse.jdt.ui.prefs ├── build.gradle ├── config │ └── checkstyle │ │ ├── checkstyle.xml │ │ ├── import-control.xml │ │ └── mysuppressions.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── formkiq │ │ │ └── aws │ │ │ └── dynamodb │ │ │ ├── ApiAuthorization.java │ │ │ ├── ApiPermission.java │ │ │ ├── AttributeValueHelper.java │ │ │ ├── AttributeValueToDynamicObject.java │ │ │ ├── AttributeValueToMap.java │ │ │ ├── AttributeValueToString.java │ │ │ ├── AttributeValueToWriteRequest.java │ │ │ ├── AttributeValuesToWriteRequests.java │ │ │ ├── BatchGetConfig.java │ │ │ ├── DbKeys.java │ │ │ ├── DynamicObject.java │ │ │ ├── DynamicObjectComparator.java │ │ │ ├── DynamoDbAwsServiceRegistry.java │ │ │ ├── DynamoDbConnectionBuilder.java │ │ │ ├── DynamoDbConnectionBuilderExtension.java │ │ │ ├── DynamoDbService.java │ │ │ ├── DynamoDbServiceExtension.java │ │ │ ├── DynamoDbServiceImpl.java │ │ │ ├── DynamodbRecord.java │ │ │ ├── DynamodbRecordKeyPredicate.java │ │ │ ├── DynamodbRecordRequests.java │ │ │ ├── DynamodbRecordToKeys.java │ │ │ ├── DynamodbRecordToMap.java │ │ │ ├── DynamodbRecordTx.java │ │ │ ├── DynamodbVersionRecord.java │ │ │ ├── ID.java │ │ │ ├── MapToAttributeValue.java │ │ │ ├── MoveAttributeFunction.java │ │ │ ├── PaginationMapToken.java │ │ │ ├── PaginationResult.java │ │ │ ├── PaginationResults.java │ │ │ ├── PaginationToAttributeValue.java │ │ │ ├── QueryConfig.java │ │ │ ├── QueryResponseToPagination.java │ │ │ ├── ReadRequestBuilder.java │ │ │ ├── SiteIdKeyGenerator.java │ │ │ ├── WriteRequestBuilder.java │ │ │ ├── WriteTransactionRequestBuilder.java │ │ │ ├── cache │ │ │ ├── CacheService.java │ │ │ ├── CacheServiceExtension.java │ │ │ └── DynamoDbCacheService.java │ │ │ ├── model │ │ │ ├── DocumentItem.java │ │ │ ├── DocumentMapToDocument.java │ │ │ ├── DocumentMetadata.java │ │ │ ├── DocumentSyncRecord.java │ │ │ ├── DocumentSyncRecordBuilder.java │ │ │ ├── DocumentSyncServiceType.java │ │ │ ├── DocumentSyncStatus.java │ │ │ ├── DocumentSyncType.java │ │ │ ├── DocumentTag.java │ │ │ ├── DocumentTagType.java │ │ │ ├── DynamicDocumentItem.java │ │ │ ├── DynamicObjectToDocumentItem.java │ │ │ ├── MappingRecord.java │ │ │ ├── QueryRequest.java │ │ │ ├── SearchAttributeCriteria.java │ │ │ ├── SearchMetaCriteria.java │ │ │ ├── SearchQuery.java │ │ │ ├── SearchResponseFields.java │ │ │ ├── SearchTagCriteria.java │ │ │ ├── SearchTagCriteriaRange.java │ │ │ └── TimeToLiveBuilder.java │ │ │ ├── objects │ │ │ ├── DateUtil.java │ │ │ ├── MimeFinder.java │ │ │ ├── MimeType.java │ │ │ ├── Objects.java │ │ │ └── Strings.java │ │ │ ├── schema │ │ │ └── DocumentSchema.java │ │ │ └── useractivities │ │ │ ├── UserActivityRecord.java │ │ │ └── UserActivityType.java │ └── resources │ │ └── .gitkeep │ └── test │ ├── java │ └── com │ │ └── formkiq │ │ └── aws │ │ └── dynamodb │ │ ├── AttributeValueToMapTest.java │ │ ├── DynamoDbServiceTest.java │ │ ├── cache │ │ └── DynamoDbCacheServiceTest.java │ │ ├── model │ │ └── TimeToLiveBuilderTest.java │ │ └── objects │ │ ├── MimeTypeTest.java │ │ ├── ObjectsTest.java │ │ └── StringsTest.java │ └── resources │ └── .gitkeep ├── aws-eventbridge ├── .gitignore ├── build.gradle ├── config │ └── checkstyle │ │ ├── checkstyle.xml │ │ ├── import-control.xml │ │ └── mysuppressions.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── formkiq │ │ │ └── aws │ │ │ └── eventbridge │ │ │ ├── EventBridgeAwsServiceRegistry.java │ │ │ ├── EventBridgeConnectionBuilder.java │ │ │ ├── EventBridgeMessage.java │ │ │ ├── EventBridgeService.java │ │ │ ├── EventBridgeServiceExtension.java │ │ │ └── EventBridgeServiceImpl.java │ └── resources │ │ └── .gitkeep │ └── test │ └── resources │ └── .gitkeep ├── aws-iam ├── .checkstyle ├── .classpath ├── .gitignore ├── .settings │ ├── org.eclipse.buildship.core.prefs │ ├── org.eclipse.core.resources.prefs │ ├── org.eclipse.jdt.core.prefs │ └── org.eclipse.jdt.ui.prefs ├── build.gradle ├── config │ └── checkstyle │ │ ├── checkstyle.xml │ │ ├── import-control.xml │ │ └── mysuppressions.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── formkiq │ │ │ └── aws │ │ │ └── iam │ │ │ ├── IamConnectionBuilder.java │ │ │ └── IamService.java │ └── resources │ │ └── .gitkeep │ └── test │ ├── java │ └── .gitkeep │ └── resources │ └── empty2 ├── aws-lambda ├── .checkstyle ├── .classpath ├── .gitignore ├── .settings │ ├── org.eclipse.buildship.core.prefs │ ├── org.eclipse.core.resources.prefs │ ├── org.eclipse.jdt.core.prefs │ └── org.eclipse.jdt.ui.prefs ├── build.gradle ├── config │ └── checkstyle │ │ ├── checkstyle.xml │ │ ├── import-control.xml │ │ └── mysuppressions.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── formkiq │ │ │ └── aws │ │ │ └── lambda │ │ │ ├── LambdaConnectionBuilder.java │ │ │ └── LambdaService.java │ └── resources │ │ └── .gitkeep │ └── test │ ├── java │ └── .gitkeep │ └── resources │ └── empty2 ├── aws-s3 ├── .checkstyle ├── .classpath ├── .gitignore ├── .settings │ ├── org.eclipse.buildship.core.prefs │ ├── org.eclipse.core.resources.prefs │ ├── org.eclipse.jdt.core.prefs │ └── org.eclipse.jdt.ui.prefs ├── build.gradle ├── config │ └── checkstyle │ │ ├── checkstyle.xml │ │ ├── import-control.xml │ │ └── mysuppressions.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── formkiq │ │ │ └── aws │ │ │ └── s3 │ │ │ ├── ChecksumCalculator.java │ │ │ ├── PresignGetUrlConfig.java │ │ │ ├── S3AwsServiceRegistry.java │ │ │ ├── S3ConnectionBuilder.java │ │ │ ├── S3MultipartUploader.java │ │ │ ├── S3ObjectMetadata.java │ │ │ ├── S3PresignerConnectionBuilder.java │ │ │ ├── S3PresignerService.java │ │ │ ├── S3PresignerServiceExtension.java │ │ │ ├── S3Service.java │ │ │ ├── S3ServiceExtension.java │ │ │ └── S3ServiceInterceptor.java │ └── resources │ │ └── .gitkeep │ └── test │ ├── java │ └── .gitkeep │ └── resources │ └── empty2 ├── aws-ses ├── .checkstyle ├── .classpath ├── .gitignore ├── build.gradle ├── config │ └── checkstyle │ │ ├── checkstyle.xml │ │ ├── import-control.xml │ │ └── mysuppressions.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── formkiq │ │ │ └── aws │ │ │ └── ses │ │ │ ├── SesAwsServiceRegistry.java │ │ │ ├── SesConnectionBuilder.java │ │ │ ├── SesService.java │ │ │ └── SesServiceExtension.java │ └── resources │ │ └── .gitkeep │ └── test │ └── java │ └── .gitkeep ├── aws-sns ├── .checkstyle ├── .classpath ├── .gitignore ├── .settings │ ├── org.eclipse.buildship.core.prefs │ ├── org.eclipse.core.resources.prefs │ ├── org.eclipse.jdt.core.prefs │ └── org.eclipse.jdt.ui.prefs ├── build.gradle ├── config │ └── checkstyle │ │ ├── checkstyle.xml │ │ ├── import-control.xml │ │ └── mysuppressions.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── formkiq │ │ │ └── aws │ │ │ └── sns │ │ │ ├── SnsAwsServiceRegistry.java │ │ │ ├── SnsConnectionBuilder.java │ │ │ ├── SnsService.java │ │ │ └── SnsServiceExtension.java │ └── resources │ │ └── .gitkeep │ └── test │ ├── .gitkeep │ └── java │ └── .gitkeep ├── aws-sqs ├── .checkstyle ├── .classpath ├── .gitignore ├── .settings │ ├── org.eclipse.buildship.core.prefs │ ├── org.eclipse.core.resources.prefs │ ├── org.eclipse.jdt.core.prefs │ └── org.eclipse.jdt.ui.prefs ├── build.gradle ├── config │ └── checkstyle │ │ ├── checkstyle.xml │ │ ├── import-control.xml │ │ └── mysuppressions.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── formkiq │ │ │ └── aws │ │ │ └── sqs │ │ │ ├── SqsAwsServiceRegistry.java │ │ │ ├── SqsConnectionBuilder.java │ │ │ ├── SqsMessageRecord.java │ │ │ ├── SqsMessageRecords.java │ │ │ ├── SqsService.java │ │ │ ├── SqsServiceExtension.java │ │ │ └── SqsServiceImpl.java │ └── resources │ │ └── .gitkeep │ └── test │ └── resources │ └── .gitkeep ├── aws-ssm ├── .checkstyle ├── .classpath ├── .gitignore ├── .settings │ ├── org.eclipse.buildship.core.prefs │ ├── org.eclipse.core.resources.prefs │ ├── org.eclipse.jdt.core.prefs │ └── org.eclipse.jdt.ui.prefs ├── build.gradle ├── config │ └── checkstyle │ │ ├── checkstyle.xml │ │ ├── import-control.xml │ │ └── mysuppressions.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── formkiq │ │ │ └── aws │ │ │ └── ssm │ │ │ ├── SsmAwsServiceRegistry.java │ │ │ ├── SsmConnectionBuilder.java │ │ │ ├── SsmService.java │ │ │ ├── SsmServiceCache.java │ │ │ ├── SsmServiceExtension.java │ │ │ ├── SsmServiceImpl.java │ │ │ ├── SsmServiceNoOpExtension.java │ │ │ └── SsmServiceNoop.java │ └── resources │ │ └── .gitkeep │ └── test │ ├── java │ └── com │ │ └── formkiq │ │ └── aws │ │ └── ssm │ │ └── SsmServiceCacheTest.java │ └── resources │ └── .gitkeep ├── aws-sts ├── .checkstyle ├── .classpath ├── .gitignore ├── .settings │ ├── org.eclipse.buildship.core.prefs │ ├── org.eclipse.core.resources.prefs │ ├── org.eclipse.jdt.core.prefs │ └── org.eclipse.jdt.ui.prefs ├── build.gradle ├── config │ └── checkstyle │ │ ├── checkstyle.xml │ │ ├── import-control.xml │ │ └── mysuppressions.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── formkiq │ │ │ └── aws │ │ │ └── sts │ │ │ ├── Aws4SignerParamsBuilder.java │ │ │ ├── StsConnectionBuilder.java │ │ │ └── StsService.java │ └── resources │ │ └── .gitkeep │ └── test │ ├── java │ └── .gitkeep │ └── resources │ └── empty2 ├── aws-xray ├── .checkstyle ├── .classpath ├── .gitignore ├── .settings │ ├── org.eclipse.buildship.core.prefs │ ├── org.eclipse.core.resources.prefs │ ├── org.eclipse.jdt.core.prefs │ └── org.eclipse.jdt.ui.prefs ├── build.gradle ├── config │ └── checkstyle │ │ ├── checkstyle.xml │ │ ├── import-control.xml │ │ └── mysuppressions.xml └── src │ ├── main │ ├── java │ │ └── .gitkeep │ └── resources │ │ └── META-INF │ │ └── native-image │ │ └── com.formkiq │ │ └── aws-xray │ │ └── reflect-config.json │ └── test │ ├── java │ └── .gitkeep │ └── resources │ └── .gitkeep-aws-xray ├── build.gradle ├── config └── gradle │ └── spotbugs-exclude.xml ├── console ├── .checkstyle ├── .editorconfig ├── .gitignore ├── Dockerfile ├── README.md ├── build.gradle ├── config │ └── checkstyle │ │ ├── checkstyle.xml │ │ ├── import-control.xml │ │ └── mysuppressions.xml └── src │ ├── integration │ └── java │ │ └── com │ │ └── formkiq │ │ └── stacks │ │ └── console │ │ └── awstest │ │ └── AwsResourceTest.java │ ├── main │ ├── java │ │ └── com │ │ │ └── formkiq │ │ │ └── stacks │ │ │ └── console │ │ │ └── ConsoleInstallHandler.java │ └── resources │ │ ├── cloudformation │ │ ├── template-install.yaml │ │ ├── template-users.yaml │ │ └── template.yaml │ │ └── emailtemplates │ │ ├── CustomMessage_AdminCreateUser │ │ └── Message │ │ ├── CustomMessage_ForgotPassword │ │ └── Message │ │ └── CustomMessage_SignUp │ │ └── Message │ └── test │ ├── java │ └── com │ │ └── formkiq │ │ └── stacks │ │ └── console │ │ ├── ConsoleInstallHandlerTest.java │ │ ├── HttpUrlConnectionRecorder.java │ │ ├── LambdaContextRecorder.java │ │ └── LambdaLoggerRecorder.java │ └── resources │ └── test.zip ├── docker-compose-dynamodb.yml ├── docker-compose.yml ├── docs ├── images │ ├── formkiq_architecture.png │ └── multi-tier-architecture.png ├── openapi │ ├── openapi-auth.yaml │ ├── openapi-iam.yaml │ ├── openapi-jwt.yaml │ └── openapi-key.yaml └── postman │ ├── openapi-iam.json │ ├── openapi-jwt.json │ └── openapi-key.json ├── document-events ├── .checkstyle ├── .classpath ├── .gitignore ├── .settings │ ├── org.eclipse.buildship.core.prefs │ ├── org.eclipse.core.resources.prefs │ ├── org.eclipse.jdt.core.prefs │ └── org.eclipse.jdt.ui.prefs ├── build.gradle ├── config │ └── checkstyle │ │ ├── checkstyle.xml │ │ ├── import-control.xml │ │ └── mysuppressions.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── formkiq │ │ │ └── module │ │ │ └── events │ │ │ ├── EventService.java │ │ │ ├── EventServiceMock.java │ │ │ ├── EventServiceSns.java │ │ │ ├── EventServiceSnsExtension.java │ │ │ ├── document │ │ │ ├── DocumentEvent.java │ │ │ └── DocumentEventType.java │ │ │ └── folder │ │ │ ├── FolderEvent.java │ │ │ └── FolderEventType.java │ └── resources │ │ └── .gitkeep │ └── test │ ├── java │ └── com │ │ └── formkiq │ │ └── module │ │ └── events │ │ └── DocumentEventServiceSnsTest.java │ └── resources │ └── .gitkeep ├── dynamodb-documents ├── .checkstyle ├── .classpath ├── .gitignore ├── .settings │ ├── org.eclipse.buildship.core.prefs │ ├── org.eclipse.core.resources.prefs │ ├── org.eclipse.jdt.core.prefs │ └── org.eclipse.jdt.ui.prefs ├── build.gradle ├── config │ └── checkstyle │ │ ├── checkstyle.xml │ │ ├── import-control.xml │ │ └── mysuppressions.xml ├── documentsTableSchema.numbers ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── src │ ├── integration │ └── java │ │ └── com │ │ └── formkiq │ │ └── stacks │ │ └── dynamodb │ │ └── awstest │ │ └── AwsResourceTest.java │ ├── main │ ├── java │ │ └── com │ │ │ └── formkiq │ │ │ └── stacks │ │ │ └── dynamodb │ │ │ ├── ApiKey.java │ │ │ ├── ApiKeyPermission.java │ │ │ ├── ApiKeysService.java │ │ │ ├── ApiKeysServiceDynamoDb.java │ │ │ ├── ApiKeysServiceExtension.java │ │ │ ├── AttributeValueToDate.java │ │ │ ├── AttributeValueToDocumentFormat.java │ │ │ ├── AttributeValueToDocumentItem.java │ │ │ ├── AttributeValueToDocumentTag.java │ │ │ ├── AttributeValueToGlobalMetaFolder.java │ │ │ ├── AttributeValueToListOfStrings.java │ │ │ ├── AttributeValueToPreset.java │ │ │ ├── AttributeValueToPresetTag.java │ │ │ ├── DateRange.java │ │ │ ├── DocumentAttributeRecordListBuilder.java │ │ │ ├── DocumentDeleteMoveAttributeFunction.java │ │ │ ├── DocumentFormat.java │ │ │ ├── DocumentItemDynamoDb.java │ │ │ ├── DocumentItemToDynamicDocumentItem.java │ │ │ ├── DocumentRestoreMoveAttributeFunction.java │ │ │ ├── DocumentSearchService.java │ │ │ ├── DocumentSearchServiceExtension.java │ │ │ ├── DocumentSearchServiceImpl.java │ │ │ ├── DocumentService.java │ │ │ ├── DocumentServiceExtension.java │ │ │ ├── DocumentServiceImpl.java │ │ │ ├── DocumentServiceInterceptor.java │ │ │ ├── DocumentSyncService.java │ │ │ ├── DocumentSyncServiceDynamoDb.java │ │ │ ├── DocumentSyncServiceExtension.java │ │ │ ├── DocumentTagToAttributeValueMap.java │ │ │ ├── DocumentTagToDynamicDocumentTag.java │ │ │ ├── DocumentTagValidator.java │ │ │ ├── DocumentTagValidatorImpl.java │ │ │ ├── DocumentTags.java │ │ │ ├── DocumentValidator.java │ │ │ ├── DocumentValidatorImpl.java │ │ │ ├── DocumentVersionService.java │ │ │ ├── DocumentVersionServiceDynamoDb.java │ │ │ ├── DocumentVersionServiceExtension.java │ │ │ ├── DocumentVersionServiceNoVersioning.java │ │ │ ├── DynamicDocumentTag.java │ │ │ ├── DynamicObjectToDocumentTag.java │ │ │ ├── FolderIndexProcessor.java │ │ │ ├── FolderIndexProcessorExtension.java │ │ │ ├── FolderIndexProcessorImpl.java │ │ │ ├── FolderIndexRecord.java │ │ │ ├── FolderIndexRecordExtended.java │ │ │ ├── GlobalIndexService.java │ │ │ ├── Preset.java │ │ │ ├── PresetTag.java │ │ │ ├── SaveDocumentOptions.java │ │ │ ├── SchemaCompositeKeyGenerator.java │ │ │ ├── SchemaRequiredDefaultValueKeyGenerator.java │ │ │ ├── SearchAttributesToCriteria.java │ │ │ ├── WebhooksService.java │ │ │ ├── WebhooksServiceExtension.java │ │ │ ├── WebhooksServiceImpl.java │ │ │ ├── apimodels │ │ │ ├── AddDocumentTag.java │ │ │ ├── MatchDocumentTag.java │ │ │ ├── UpdateMatchingDocumentTagsRequest.java │ │ │ ├── UpdateMatchingDocumentTagsRequestMatch.java │ │ │ ├── UpdateMatchingDocumentTagsRequestUpdate.java │ │ │ ├── UpdateMatchingDocumentTagsRequestValidator.java │ │ │ └── UpdateMatchingDocumentTagsRequestValidatorImpl.java │ │ │ ├── attributes │ │ │ ├── AttributeDataType.java │ │ │ ├── AttributeKeyReserved.java │ │ │ ├── AttributeRecord.java │ │ │ ├── AttributeService.java │ │ │ ├── AttributeServiceDynamodb.java │ │ │ ├── AttributeServiceExtension.java │ │ │ ├── AttributeType.java │ │ │ ├── AttributeValidation.java │ │ │ ├── AttributeValidationAccess.java │ │ │ ├── AttributeValidationType.java │ │ │ ├── AttributeValidator.java │ │ │ ├── AttributeValidatorExtension.java │ │ │ ├── AttributeValidatorImpl.java │ │ │ ├── DocumentAttributeKeyPredicate.java │ │ │ ├── DocumentAttributeRecord.java │ │ │ ├── DocumentAttributeRecordBuilder.java │ │ │ ├── DocumentAttributeRecordPredicate.java │ │ │ ├── DocumentAttributeRecordToMap.java │ │ │ ├── DocumentAttributeRecordsToSchemaAttributes.java │ │ │ ├── DocumentAttributeValueType.java │ │ │ ├── DocumentRelationshipType.java │ │ │ ├── DynamicObjectToDocumentAttributeRecord.java │ │ │ ├── Watermark.java │ │ │ ├── WatermarkPosition.java │ │ │ ├── WatermarkScale.java │ │ │ ├── WatermarkXanchor.java │ │ │ └── WatermarkYanchor.java │ │ │ ├── base64 │ │ │ ├── Base64ToMap.java │ │ │ ├── MapToBase64.java │ │ │ ├── Pagination.java │ │ │ └── StringToMapAttributeValue.java │ │ │ ├── config │ │ │ ├── ConfigService.java │ │ │ ├── ConfigServiceDynamoDb.java │ │ │ ├── ConfigServiceExtension.java │ │ │ ├── SiteConfiguration.java │ │ │ ├── SiteConfigurationDocusign.java │ │ │ ├── SiteConfigurationGoogle.java │ │ │ └── SiteConfigurationOcr.java │ │ │ ├── documents │ │ │ ├── Document.java │ │ │ └── DocumentPublicationRecord.java │ │ │ ├── locale │ │ │ ├── LocaleRecord.java │ │ │ ├── LocaleRecordToMap.java │ │ │ ├── LocaleResourceType.java │ │ │ ├── LocaleService.java │ │ │ ├── LocaleServiceDynamodb.java │ │ │ ├── LocaleServiceExtension.java │ │ │ └── LocaleTypeRecord.java │ │ │ ├── mappings │ │ │ ├── Mapping.java │ │ │ ├── MappingAttribute.java │ │ │ ├── MappingAttributeLabelMatchingType.java │ │ │ ├── MappingAttributeMetadataField.java │ │ │ ├── MappingAttributeSourceType.java │ │ │ ├── MappingService.java │ │ │ ├── MappingServiceDynamodb.java │ │ │ ├── MappingServiceExtension.java │ │ │ └── MappingToMappingRecord.java │ │ │ ├── s3 │ │ │ ├── S3ServiceInterceptorExtension.java │ │ │ ├── S3ServiceNoVersioningInterceptor.java │ │ │ └── S3ServiceVersioningInterceptor.java │ │ │ └── schemas │ │ │ ├── ClassificationRecord.java │ │ │ ├── Schema.java │ │ │ ├── SchemaAttributeAllowedValueRecord.java │ │ │ ├── SchemaAttributeKeyRecord.java │ │ │ ├── SchemaAttributes.java │ │ │ ├── SchemaAttributesCompositeKey.java │ │ │ ├── SchemaAttributesOptional.java │ │ │ ├── SchemaAttributesRequired.java │ │ │ ├── SchemaCompositeKeyRecord.java │ │ │ ├── SchemaMissingRequiredAttributes.java │ │ │ ├── SchemaService.java │ │ │ ├── SchemaServiceDynamodb.java │ │ │ ├── SchemaServiceExtension.java │ │ │ └── SitesSchemaRecord.java │ └── resources │ │ └── cloudformation │ │ └── dynamodb-documents.yml │ └── test │ ├── java │ └── com │ │ └── formkiq │ │ └── stacks │ │ └── dynamodb │ │ ├── ApiKeysServiceDynamoDbTest.java │ │ ├── AttributeServiceDynamoDbTest.java │ │ ├── AttributeValueToGlobalMetaFolderTest.java │ │ ├── ConfigServiceDynamoDbTest.java │ │ ├── DateUtilTest.java │ │ ├── DocumentMetadataComparator.java │ │ ├── DocumentSearchServiceImplTest.java │ │ ├── DocumentServiceImplTest.java │ │ ├── DocumentSyncServiceDynamoDbTest.java │ │ ├── DocumentVersionServiceDynamoDbTest.java │ │ ├── FolderIndexProcessorTest.java │ │ ├── FolderIndexRecordTest.java │ │ ├── MappingServiceDynamoDbTest.java │ │ ├── ReadRequestBuilderTest.java │ │ ├── SearchAttributesToCriteriaTest.java │ │ ├── SiteIdKeyGeneratorTest.java │ │ ├── WebhooksServiceImplTest.java │ │ ├── locale │ │ └── LocaleServiceDynamodbTest.java │ │ └── schemas │ │ └── SchemaServiceDynamodbTest.java │ └── resources │ ├── Cache.json │ └── Documents.json ├── emptyVersionedBucket.py ├── fkq-lambda-core ├── .checkstyle ├── .classpath ├── .gitignore ├── .settings │ ├── org.eclipse.buildship.core.prefs │ ├── org.eclipse.core.resources.prefs │ ├── org.eclipse.jdt.core.prefs │ └── org.eclipse.jdt.ui.prefs ├── build.gradle ├── config │ └── checkstyle │ │ ├── checkstyle.xml │ │ ├── import-control.xml │ │ └── mysuppressions.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── formkiq │ │ │ └── aws │ │ │ └── services │ │ │ └── lambda │ │ │ ├── AbstractRestApiRequestHandler.java │ │ │ ├── ApiAuthorizationBuilder.java │ │ │ ├── ApiAuthorizationInterceptor.java │ │ │ ├── ApiGatewayRequestContext.java │ │ │ ├── ApiGatewayRequestEvent.java │ │ │ ├── ApiGatewayRequestEventBuilder.java │ │ │ ├── ApiGatewayRequestEventUtil.java │ │ │ ├── ApiGatewayRequestHandler.java │ │ │ ├── ApiGatewayResponse.java │ │ │ ├── ApiMapResponse.java │ │ │ ├── ApiMessageResponse.java │ │ │ ├── ApiObjectResponse.java │ │ │ ├── ApiPagination.java │ │ │ ├── ApiRedirectResponse.java │ │ │ ├── ApiRequestHandlerInterceptor.java │ │ │ ├── ApiRequestHandlerResponse.java │ │ │ ├── ApiResponse.java │ │ │ ├── ApiResponseError.java │ │ │ ├── ApiResponseStatus.java │ │ │ ├── AuthorizationHandler.java │ │ │ ├── AwsMessageRecord.java │ │ │ ├── CaseInsensitiveEnumTypeAdapterFactory.java │ │ │ ├── GsonUtil.java │ │ │ ├── LambdaInputRecord.java │ │ │ ├── LambdaInputRecords.java │ │ │ ├── MultiAuthorizationHandlerExtension.java │ │ │ ├── MultiAuthorizationHandlers.java │ │ │ └── exceptions │ │ │ ├── BadException.java │ │ │ ├── ConflictException.java │ │ │ ├── DocumentNotFoundException.java │ │ │ ├── ForbiddenException.java │ │ │ ├── NotFoundException.java │ │ │ ├── NotImplementedException.java │ │ │ ├── TooManyRequestsException.java │ │ │ └── UnauthorizedException.java │ └── resources │ │ └── .gitkeep │ └── test │ ├── java │ └── com │ │ └── formkiq │ │ └── aws │ │ └── services │ │ └── lambda │ │ └── ApiAuthorizationBuilderTest.java │ └── resources │ └── .gitkeep ├── fkq-lambda-services ├── .checkstyle ├── .classpath ├── .gitignore ├── .settings │ ├── org.eclipse.buildship.core.prefs │ ├── org.eclipse.core.resources.prefs │ ├── org.eclipse.jdt.core.prefs │ └── org.eclipse.jdt.ui.prefs ├── build.gradle ├── config │ └── checkstyle │ │ ├── checkstyle.xml │ │ ├── import-control.xml │ │ └── mysuppressions.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── formkiq │ │ │ └── module │ │ │ └── lambdaservices │ │ │ ├── AwsServiceCache.java │ │ │ ├── AwsServiceCacheBuilder.java │ │ │ ├── AwsServiceExtension.java │ │ │ ├── AwsServiceRegistry.java │ │ │ ├── ClassServiceExtension.java │ │ │ ├── logger │ │ │ ├── LogLevel.java │ │ │ ├── LogType.java │ │ │ ├── Logger.java │ │ │ ├── LoggerImpl.java │ │ │ └── LoggerRecorder.java │ │ │ └── timer │ │ │ └── MethodTimer.java │ └── resources │ │ └── .gitkeep │ └── test │ ├── java │ └── com │ │ └── formkiq │ │ └── module │ │ └── lambdaservices │ │ └── logger │ │ └── LoggerTest.java │ └── resources │ └── empty2 ├── fkq-plugins ├── .checkstyle ├── .classpath ├── .gitignore ├── .settings │ ├── org.eclipse.buildship.core.prefs │ ├── org.eclipse.core.resources.prefs │ ├── org.eclipse.jdt.core.prefs │ └── org.eclipse.jdt.ui.prefs ├── build.gradle ├── config │ └── checkstyle │ │ ├── checkstyle.xml │ │ ├── import-control.xml │ │ └── mysuppressions.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── formkiq │ │ │ └── plugins │ │ │ └── useractivity │ │ │ └── UserActivityPlugin.java │ └── resources │ │ └── .gitkeep │ └── test │ ├── java │ └── .gitkeep │ └── resources │ └── .gitkeep-fkq-plugins ├── fkq-test-utils ├── .checkstyle ├── .classpath ├── .gitignore ├── .settings │ ├── org.eclipse.buildship.core.prefs │ ├── org.eclipse.core.resources.prefs │ ├── org.eclipse.jdt.core.prefs │ └── org.eclipse.jdt.ui.prefs ├── build.gradle ├── config │ └── checkstyle │ │ ├── checkstyle.xml │ │ ├── import-control.xml │ │ └── mysuppressions.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── formkiq │ │ │ └── testutils │ │ │ ├── FileGenerator.java │ │ │ └── aws │ │ │ ├── AbstractAwsIntegrationTest.java │ │ │ ├── AbstractFormKiqApiResponseCallback.java │ │ │ ├── ApiHttpRequest.java │ │ │ ├── DynamoDbExtension.java │ │ │ ├── DynamoDbHelper.java │ │ │ ├── DynamoDbTestServices.java │ │ │ ├── FkqAttributeService.java │ │ │ ├── FkqCognitoService.java │ │ │ ├── FkqDocumentService.java │ │ │ ├── FkqS3PresignerService.java │ │ │ ├── FkqS3Service.java │ │ │ ├── FkqSchemaService.java │ │ │ ├── FkqSqsService.java │ │ │ ├── FkqSsmService.java │ │ │ ├── FormKiQApiExtensionConfig.java │ │ │ ├── FormKiqApiExtension.java │ │ │ ├── HttpRequestToApiHttpRequest.java │ │ │ ├── JwtTokenDecoder.java │ │ │ ├── JwtTokenEncoder.java │ │ │ ├── LambdaContextRecorder.java │ │ │ ├── LambdaLoggerRecorder.java │ │ │ ├── LocalStackExtension.java │ │ │ ├── TestServices.java │ │ │ └── TypesenseExtension.java │ └── resources │ │ └── .gitkeep │ └── test │ ├── java │ └── .gitkeep │ └── resources │ └── empty2 ├── fkq-validation ├── .checkstyle ├── .classpath ├── .gitignore ├── .settings │ ├── org.eclipse.buildship.core.prefs │ ├── org.eclipse.core.resources.prefs │ ├── org.eclipse.jdt.core.prefs │ └── org.eclipse.jdt.ui.prefs ├── build.gradle ├── config │ └── checkstyle │ │ ├── checkstyle.xml │ │ ├── import-control.xml │ │ └── mysuppressions.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── formkiq │ │ │ └── validation │ │ │ ├── ValidationError.java │ │ │ ├── ValidationErrorImpl.java │ │ │ ├── ValidationErrors.java │ │ │ └── ValidationException.java │ └── resources │ │ └── .gitkeep │ └── test │ ├── java │ └── .gitkeep │ └── resources │ └── empty2 ├── fq-gh-social.png ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── http-sigv4 ├── .checkstyle ├── .classpath ├── .gitignore ├── .settings │ ├── org.eclipse.buildship.core.prefs │ ├── org.eclipse.core.resources.prefs │ ├── org.eclipse.jdt.core.prefs │ └── org.eclipse.jdt.ui.prefs ├── build.gradle ├── config │ └── checkstyle │ │ ├── checkstyle.xml │ │ ├── import-control.xml │ │ └── mysuppressions.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── formkiq │ │ │ └── module │ │ │ └── httpsigv4 │ │ │ ├── Aws4SignerParamsBuilder.java │ │ │ ├── HttpServiceSigv4.java │ │ │ └── StringContentStreamProvider.java │ └── resources │ │ └── .gitkeep │ └── test │ ├── java │ └── .gitkeep │ └── resources │ └── empty2 ├── http ├── .checkstyle ├── .classpath ├── .gitignore ├── .settings │ ├── org.eclipse.buildship.core.prefs │ ├── org.eclipse.core.resources.prefs │ ├── org.eclipse.jdt.core.prefs │ └── org.eclipse.jdt.ui.prefs ├── build.gradle ├── config │ └── checkstyle │ │ ├── checkstyle.xml │ │ ├── import-control.xml │ │ └── mysuppressions.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── formkiq │ │ │ └── module │ │ │ └── http │ │ │ ├── HttpHeaders.java │ │ │ ├── HttpResponseStatus.java │ │ │ ├── HttpService.java │ │ │ ├── HttpServiceJdk11.java │ │ │ ├── JsonService.java │ │ │ └── JsonServiceGson.java │ └── resources │ │ └── .gitkeep │ └── test │ ├── java │ └── .gitkeep │ └── resources │ └── empty2 ├── images ├── formkiq-console.png └── logo.png ├── install-play.png ├── lambda-api-graalvm ├── .checkstyle ├── .classpath ├── .gitignore ├── build.gradle ├── config │ └── checkstyle │ │ ├── checkstyle.xml │ │ ├── import-control.xml │ │ └── mysuppressions.xml ├── runtime │ └── bootstrap └── src │ ├── main │ ├── java │ │ └── .gitkeep │ └── resources │ │ └── cloudformation │ │ ├── api-apikey.yaml │ │ ├── api-auth.yaml │ │ ├── api-iam.yaml │ │ ├── api-lambda.yaml │ │ ├── api.yaml │ │ ├── module-extra-core-ocr.yaml │ │ ├── openapi-auth.yaml │ │ ├── openapi-iam.yaml │ │ ├── openapi-jwt.yaml │ │ ├── openapi-key.yaml │ │ └── template.yaml │ └── test │ ├── java │ └── .gitkeep │ └── resources │ └── .gitkeep-lambda-api-graalvm ├── lambda-api ├── .checkstyle ├── .classpath ├── .gitignore ├── .settings │ ├── org.eclipse.buildship.core.prefs │ ├── org.eclipse.core.resources.prefs │ ├── org.eclipse.jdt.core.prefs │ └── org.eclipse.jdt.ui.prefs ├── build.gradle ├── config │ └── checkstyle │ │ ├── checkstyle.xml │ │ ├── import-control.xml │ │ └── mysuppressions.xml ├── runtime │ └── bootstrap └── src │ ├── integration │ ├── java │ │ └── com │ │ │ └── formkiq │ │ │ └── stacks │ │ │ └── api │ │ │ └── awstest │ │ │ ├── AttributesRequestTest.java │ │ │ ├── AwsResourceTest.java │ │ │ ├── ChatGptRequestTest.java │ │ │ ├── CognitoRequestTest.java │ │ │ ├── ConfigurationApiKeyRequestTest.java │ │ │ ├── ConfigurationRequestTest.java │ │ │ ├── DocumentAttributesRequestTest.java │ │ │ ├── DocumentsActionsRequestTest.java │ │ │ ├── DocumentsCompressRequestTest.java │ │ │ ├── DocumentsDocumentIdOcrRequestTest.java │ │ │ ├── DocumentsDocumentIdSyncsRequestTest.java │ │ │ ├── DocumentsDocumentIdTagsRequestTest.java │ │ │ ├── DocumentsDocumentIdUploadRequestTest.java │ │ │ ├── DocumentsDocumentIdUrlRequestTest.java │ │ │ ├── DocumentsFulltextRequestTest.java │ │ │ ├── DocumentsIdRequestTest.java │ │ │ ├── DocumentsRequestTest.java │ │ │ ├── DocumentsSearchRequestTest.java │ │ │ ├── DocumentsTagsRequestTest.java │ │ │ ├── DocumentsUploadRequestTest.java │ │ │ ├── FkqConfigService.java │ │ │ ├── FoldersRequestTest.java │ │ │ ├── MappingRequestTest.java │ │ │ ├── ObjectsExamineTest.java │ │ │ ├── PrivateWebhooksRequestTest.java │ │ │ ├── PublicWebhooksRequestTest.java │ │ │ ├── SiteSchemaRequestTest.java │ │ │ ├── SitesRequestTest.java │ │ │ ├── VersionRequestTest.java │ │ │ └── WebhookTagsRequestTest.java │ └── resources │ │ ├── form.pdf │ │ ├── invoice.pdf │ │ ├── junit-platform.properties │ │ └── multipage_example.pdf │ ├── main │ ├── java │ │ └── com │ │ │ └── formkiq │ │ │ ├── lambda │ │ │ └── apigateway │ │ │ │ └── util │ │ │ │ ├── GsonUtil.java │ │ │ │ └── InterfaceSerializer.java │ │ │ └── stacks │ │ │ └── api │ │ │ ├── AbstractCoreRequestHandler.java │ │ │ ├── ApiDocumentTagItemResponse.java │ │ │ ├── ApiDocumentTagsItemResponse.java │ │ │ ├── ApiDocumentVersion.java │ │ │ ├── ApiEmptyResponse.java │ │ │ ├── ApiGatewayRequestEventUtil.java │ │ │ ├── ApiUrlResponse.java │ │ │ ├── CoreRequestHandler.java │ │ │ ├── QueryRequestValidator.java │ │ │ ├── handler │ │ │ ├── AddAttribute.java │ │ │ ├── AddAttributeRequest.java │ │ │ ├── AddClassificationRequest.java │ │ │ ├── AddDocumentRequest.java │ │ │ ├── AddDocumentTag.java │ │ │ ├── AddGroup.java │ │ │ ├── AddGroupRequest.java │ │ │ ├── AddLocaleResourceItemRequest.java │ │ │ ├── AddMappingRequest.java │ │ │ ├── AddUser.java │ │ │ ├── AddUserRequest.java │ │ │ ├── AttributeAllowedValuesRequestHandler.java │ │ │ ├── AttributeRequestHandler.java │ │ │ ├── AttributesRequestHandler.java │ │ │ ├── ConfigurationApiKeyRequestHandler.java │ │ │ ├── ConfigurationApiKeysRequestHandler.java │ │ │ ├── ConfigurationRequestHandler.java │ │ │ ├── DocumentAttribute.java │ │ │ ├── DocumentAttributeRequestHandler.java │ │ │ ├── DocumentAttributeValueRequest.java │ │ │ ├── DocumentAttributesRequest.java │ │ │ ├── DocumentAttributesRequestHandler.java │ │ │ ├── DocumentAttributesValueRequestHandler.java │ │ │ ├── DocumentIdContentRequestHandler.java │ │ │ ├── DocumentIdPurgeRequestHandler.java │ │ │ ├── DocumentIdRequestHandler.java │ │ │ ├── DocumentIdRestoreRequestHandler.java │ │ │ ├── DocumentIdUrlRequestHandler.java │ │ │ ├── DocumentTagRequestHandler.java │ │ │ ├── DocumentTagValueRequestHandler.java │ │ │ ├── DocumentTagsRequestHandler.java │ │ │ ├── DocumentsActionsRequestHandler.java │ │ │ ├── DocumentsActionsRetryRequestHandler.java │ │ │ ├── DocumentsCompressRequestHandler.java │ │ │ ├── DocumentsFulltextRequestHandler.java │ │ │ ├── DocumentsFulltextRequestTagsKeyHandler.java │ │ │ ├── DocumentsFulltextRequestTagsKeyValueHandler.java │ │ │ ├── DocumentsIdUploadRequestHandler.java │ │ │ ├── DocumentsOptionsRequestHandler.java │ │ │ ├── DocumentsRequestHandler.java │ │ │ ├── DocumentsRestrictions.java │ │ │ ├── DocumentsRestrictionsMaxContentLength.java │ │ │ ├── DocumentsRestrictionsMaxDocuments.java │ │ │ ├── DocumentsSyncsRequestHandler.java │ │ │ ├── DocumentsUploadRequestHandler.java │ │ │ ├── FoldersIndexKeyRequestHandler.java │ │ │ ├── FoldersRequestHandler.java │ │ │ ├── GroupRequestHandler.java │ │ │ ├── GroupsRequestHandler.java │ │ │ ├── GroupsUserRequestHandler.java │ │ │ ├── GroupsUsersRequestHandler.java │ │ │ ├── IndicesFolderMoveRequestHandler.java │ │ │ ├── IndicesRequestHandler.java │ │ │ ├── IndicesSearchRequestHandler.java │ │ │ ├── MappingsIdRequestHandler.java │ │ │ ├── MappingsRequestHandler.java │ │ │ ├── PrivateWebhooksRequestHandler.java │ │ │ ├── PublicDocumentsRequestHandler.java │ │ │ ├── PublicWebhooksRequestHandler.java │ │ │ ├── PublicationsDocumentIdRequestHandler.java │ │ │ ├── ReindexDocumentsRequestHandler.java │ │ │ ├── SearchRequestHandler.java │ │ │ ├── SitesClassificationAllowedValuesRequestHandler.java │ │ │ ├── SitesClassificationIdRequestHandler.java │ │ │ ├── SitesClassificationRequestHandler.java │ │ │ ├── SitesLocaleRequestHandler.java │ │ │ ├── SitesLocaleResourceItemRequestHandler.java │ │ │ ├── SitesLocaleResourceItemsRequestHandler.java │ │ │ ├── SitesLocalesRequestHandler.java │ │ │ ├── SitesRequestHandler.java │ │ │ ├── SitesSchemaAttributeAllowedValuesRequestHandler.java │ │ │ ├── SitesSchemaRequestHandler.java │ │ │ ├── UpdateDocumentMatchingRequestHandler.java │ │ │ ├── UserChangePasswordRequestHandler.java │ │ │ ├── UserConfirmRegistrationRequestHandler.java │ │ │ ├── UserForgotPasswordConfirmRequestHandler.java │ │ │ ├── UserForgotPasswordRequestHandler.java │ │ │ ├── UserGroupsRequestHandler.java │ │ │ ├── UserLoginRequestHandler.java │ │ │ ├── UserOperationRequestHandler.java │ │ │ ├── UserRequestHandler.java │ │ │ ├── UsersRequestHandler.java │ │ │ ├── VersionRequestHandler.java │ │ │ ├── WebhooksIdRequestHandler.java │ │ │ ├── WebhooksRequestHandler.java │ │ │ └── WebhooksTagsRequestHandler.java │ │ │ ├── transformers │ │ │ ├── AddDocumentRequestToDocumentItem.java │ │ │ ├── AddDocumentRequestToPresignedUrls.java │ │ │ ├── AddDocumentTagToDocumentTag.java │ │ │ ├── AdminGetUserResponseToMap.java │ │ │ ├── AttributeRecordToMap.java │ │ │ ├── DocumentAttributeToDocumentAttributeRecord.java │ │ │ ├── DynamicObjectToMap.java │ │ │ ├── GroupNameComparator.java │ │ │ ├── GroupsResponseToMap.java │ │ │ ├── MappingRecordToMap.java │ │ │ ├── PresignedUrlsToS3Bucket.java │ │ │ ├── UserAttributesToMap.java │ │ │ ├── UserTypeComparator.java │ │ │ └── UsersResponseToMap.java │ │ │ └── validators │ │ │ ├── ApiValidator.java │ │ │ ├── DocumentEntityValidator.java │ │ │ └── DocumentEntityValidatorImpl.java │ └── resources │ │ └── .gitkeep │ └── test │ ├── java │ └── com │ │ └── formkiq │ │ └── stacks │ │ └── api │ │ ├── AbstractRequestHandler.java │ │ ├── ApiDocumentSyncRequestHandlerTest.java │ │ ├── ApiDocumentsOcrRequestTest.java │ │ ├── ApiDocumentsPatchRequestTest.java │ │ ├── ApiDocumentsPublicDocumentsRequestTest.java │ │ ├── ApiDocumentsRequestTest.java │ │ ├── ApiDocumentsTagsRequestTest.java │ │ ├── ApiDocumentsUploadRequestTest.java │ │ ├── ApiPrivateWebhooksRequestTest.java │ │ ├── ApiPublicWebhooksRequestTest.java │ │ ├── ApiRequestHandlerTest.java │ │ ├── ApiWebhooksTagsRequestTest.java │ │ ├── IndicesFolderMoveRequestTest.java │ │ ├── IndicesSearchRequestTest.java │ │ ├── RequestRecordExpectationResponseCallback.java │ │ ├── handler │ │ ├── AbstractApiClientRequestTest.java │ │ ├── ApiDocumentsFulltextRequestTest.java │ │ ├── AttributesRequestTest.java │ │ ├── CognitoAuthRequestTest.java │ │ ├── CognitoRequestTest.java │ │ ├── ConfigurationApiKeysRequestTest.java │ │ ├── ConfigurationRequestTest.java │ │ ├── DocumentIdContentGetRequestHandlerTest.java │ │ ├── DocumentIdUrlRequestHandlerTest.java │ │ ├── DocumentsActionsRequestTest.java │ │ ├── DocumentsCompressRequestTest.java │ │ ├── DocumentsIdPurgeRequestTest.java │ │ ├── DocumentsIdRequestTest.java │ │ ├── DocumentsRequestTest.java │ │ ├── DocumentsRestrictionsMaxContentLengthTest.java │ │ ├── DocumentsSearchRequestTest.java │ │ ├── DocumentsUploadRequestTest.java │ │ ├── FoldersRequestHandlerTest.java │ │ ├── FormKiQResponseCallback.java │ │ ├── IndicesRequestHandlerTest.java │ │ ├── MappingsRequestTest.java │ │ ├── ReindexDocumentsRequestTest.java │ │ ├── SitesClassificationsRequestTest.java │ │ ├── SitesLocaleResourceItemRequestHandlerTest.java │ │ ├── SitesRequestTest.java │ │ ├── SitesSchemaRequestTest.java │ │ ├── TestCoreRequestHandler.java │ │ ├── UpdateDocumentMatchingRequestHandlerTest.java │ │ ├── WebhookIdRequestTest.java │ │ └── WebhooksRequestTest.java │ │ └── transformers │ │ └── UserAttributesToMapTest.java │ └── resources │ ├── ocr │ ├── receipt.png │ └── sample.pdf │ ├── request-delete-documents-documentid-tag-value01.json │ ├── request-delete-documents-documentid-tags01.json │ ├── request-delete-documents-documentid01.json │ ├── request-delete-documents-documentid02.json │ ├── request-delete-webhooks-webhookid01.json │ ├── request-get-documents-documentid-content01.json │ ├── request-get-documents-documentid-tags00.json │ ├── request-get-documents-documentid-tags01.json │ ├── request-get-documents-documentid-tags02.json │ ├── request-get-documents-documentid-versions.json │ ├── request-get-documents-documentid01.json │ ├── request-get-documents-documentid02.json │ ├── request-get-documents-next.json │ ├── request-get-documents-ocr01.json │ ├── request-get-documents-prev.json │ ├── request-get-documents-tz.json │ ├── request-get-documents-tz02.json │ ├── request-get-documents-upload-documentid.json │ ├── request-get-documents-upload-documentid01.json │ ├── request-get-documents-upload-documentid02.json │ ├── request-get-documents-yesterday.json │ ├── request-get-documents.json │ ├── request-get-documents02.json │ ├── request-get-documents03.json │ ├── request-get-documents04.json │ ├── request-get-webhooks-webhookid-tags01.json │ ├── request-get-webhooks-webhookid01.json │ ├── request-invalid-resource.json │ ├── request-options-documents.json │ ├── request-patch-documents-documentid02.json │ ├── request-patch-documents-documentid03.json │ ├── request-patch-webhooks-webhookid01.json │ ├── request-post-documents-documentid-formats01.json │ ├── request-post-documents-documentid-tags02.json │ ├── request-post-documents-documentid-tags03.json │ ├── request-post-documents-documentid-tags04.json │ ├── request-post-documents-documentid-tags05.json │ ├── request-post-documents-documentid02.json │ ├── request-post-documents-documentid03.json │ ├── request-post-documents-documentid04.json │ ├── request-post-documents-documentid05.json │ ├── request-post-documents-documentid06.json │ ├── request-post-documents-documentid07.json │ ├── request-post-documents-documentid13.json │ ├── request-post-documents-ocr01.json │ ├── request-post-documents01.json │ ├── request-post-documents02.json │ ├── request-post-documents03.json │ ├── request-post-documents04.json │ ├── request-post-documents05.json │ ├── request-post-indices-move.json │ ├── request-post-indices-search01.json │ ├── request-post-private-webhooks01.json │ ├── request-post-public-documents03.json │ ├── request-post-public-webhooks01.json │ ├── request-post-public-webhooks02.json │ ├── request-post-public-webhooks03.json │ ├── request-post-public-webhooks04.json │ ├── request-post-public-webhooks05.json │ ├── request-post-public-webhooks06.json │ ├── request-post-searchFulltext.json │ ├── request-post-webhooks-webhookid-tags01.json │ ├── request-put-documents-documentid-tags02.json │ ├── request-put-documents-documentid-tags03.json │ └── request-version.json ├── lambda-apikey-authorizer ├── .checkstyle ├── .classpath ├── .gitignore ├── .settings │ ├── org.eclipse.buildship.core.prefs │ ├── org.eclipse.core.resources.prefs │ ├── org.eclipse.jdt.core.prefs │ └── org.eclipse.jdt.ui.prefs ├── build.gradle ├── config │ └── checkstyle │ │ ├── checkstyle.xml │ │ ├── import-control.xml │ │ └── mysuppressions.xml ├── runtime │ └── bootstrap └── src │ ├── main │ └── java │ │ └── com │ │ └── formkiq │ │ └── module │ │ └── lambda │ │ └── authorizer │ │ └── apikey │ │ └── ApiKeyAuthorizerRequestHandler.java │ └── test │ └── java │ └── com │ └── formkiq │ └── module │ └── lambda │ └── authorizer │ └── apikey │ └── ApiKeyAuthorizerRequestHandlerTest.java ├── lambda-ocr-tesseract ├── .checkstyle ├── .classpath ├── .gitignore ├── .settings │ ├── org.eclipse.buildship.core.prefs │ ├── org.eclipse.core.resources.prefs │ ├── org.eclipse.jdt.core.prefs │ └── org.eclipse.jdt.ui.prefs ├── build.gradle ├── config │ └── checkstyle │ │ ├── checkstyle.xml │ │ ├── import-control.xml │ │ └── mysuppressions.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── formkiq │ │ │ └── module │ │ │ └── lambda │ │ │ └── ocr │ │ │ ├── docx │ │ │ ├── DocFormatConverter.java │ │ │ └── DocxFormatConverter.java │ │ │ ├── handlers │ │ │ ├── ObjectExaminePdfHandler.java │ │ │ └── ObjectExaminePdfIdHandler.java │ │ │ ├── pdf │ │ │ ├── PdfFormatConverter.java │ │ │ ├── PdfService.java │ │ │ └── PdfServicePdfBox.java │ │ │ └── tesseract │ │ │ ├── OcrTesseractProcessor.java │ │ │ ├── TesseractFormatConverter.java │ │ │ ├── TesseractWrapper.java │ │ │ └── TesseractWrapperImpl.java │ └── resources │ │ └── cloudformation │ │ └── template-ocr.yaml │ └── test │ ├── java │ └── com │ │ └── formkiq │ │ └── module │ │ └── lambda │ │ └── ocr │ │ └── tesseract │ │ ├── FormKiQResponseCallback.java │ │ ├── OcrTesseractProcessorTest.java │ │ ├── RequestHandlerTest.java │ │ └── TesseractWrapperData.java │ └── resources │ ├── collection.pdf │ ├── file-sample_100kB.doc │ ├── file-sample_100kB.docx │ ├── form.pdf │ ├── multipage_example.pdf │ ├── multipage_example.tif │ └── sample.pdf ├── lambda-s3-graalvm ├── .checkstyle ├── .classpath ├── .gitignore ├── build.gradle ├── config │ └── checkstyle │ │ ├── checkstyle.xml │ │ ├── import-control.xml │ │ └── mysuppressions.xml ├── runtime │ └── bootstrap └── src │ ├── main │ ├── java │ │ └── .gitkeep │ └── resources │ │ └── cloudformation │ │ └── template-sar.yaml │ └── test │ ├── java │ └── .gitkeep │ └── resources │ └── .gitkeep-lambda-s3-graalvm ├── lambda-s3 ├── .checkstyle ├── .classpath ├── .gitignore ├── .settings │ ├── org.eclipse.buildship.core.prefs │ ├── org.eclipse.core.resources.prefs │ ├── org.eclipse.jdt.core.prefs │ └── org.eclipse.jdt.ui.prefs ├── Dockerfile ├── build.gradle ├── config │ └── checkstyle │ │ ├── checkstyle.xml │ │ ├── import-control.xml │ │ └── mysuppressions.xml ├── runtime │ └── bootstrap └── src │ ├── integration │ └── java │ │ └── com │ │ └── formkiq │ │ └── stacks │ │ └── lambda │ │ └── s3 │ │ └── awstest │ │ ├── AbstractAwsTest.java │ │ ├── AwsResourceTest.java │ │ └── LambdaFunctionConfigurationComparator.java │ ├── main │ ├── java │ │ └── com │ │ │ └── formkiq │ │ │ └── stacks │ │ │ └── lambda │ │ │ └── s3 │ │ │ ├── DocumentAction.java │ │ │ ├── DocumentActionsProcessor.java │ │ │ ├── DocumentCompressor.java │ │ │ ├── DocumentContentFunction.java │ │ │ ├── DocumentsS3Update.java │ │ │ ├── GsonUtil.java │ │ │ ├── PublishAction.java │ │ │ ├── StagingS3Create.java │ │ │ ├── actions │ │ │ ├── AddOcrAction.java │ │ │ ├── DocumentExternalSystemExport.java │ │ │ ├── DocumentTaggingAction.java │ │ │ ├── EventBridgeAction.java │ │ │ ├── EventBridgeMessageBuilder.java │ │ │ ├── FullTextAction.java │ │ │ ├── IdpAction.java │ │ │ ├── NotificationAction.java │ │ │ ├── PdfExportAction.java │ │ │ └── SendHttpRequest.java │ │ │ ├── openai │ │ │ ├── OpenAiChatCompletionsChoice.java │ │ │ ├── OpenAiChatCompletionsChoiceMessage.java │ │ │ ├── OpenAiChatCompletionsChoiceMessageFunctionCall.java │ │ │ └── OpenAiChatCompletionsResponse.java │ │ │ └── text │ │ │ ├── BeginsWithMatcher.java │ │ │ ├── ContainsMatcher.java │ │ │ ├── ExactMatcher.java │ │ │ ├── FuzzyMatcher.java │ │ │ ├── IdpTextMatcher.java │ │ │ ├── TextMatch.java │ │ │ ├── TextMatchAlgorithm.java │ │ │ ├── TextMatchScoreComparator.java │ │ │ ├── TextMatcher.java │ │ │ ├── TokenGeneratorKeyValue.java │ │ │ └── TokenGeneratorRegex.java │ └── resources │ │ └── .gitkeep │ └── test │ ├── java │ └── com │ │ └── formkiq │ │ └── stacks │ │ └── lambda │ │ └── s3 │ │ ├── DocumentActionsProcessorTest.java │ │ ├── DocumentCompressorTest.java │ │ ├── DocumentsS3UpdateTest.java │ │ ├── ExpectationStatusResponseCallback.java │ │ ├── RequestRecordExpectationResponseCallback.java │ │ ├── StagingS3CreateTest.java │ │ ├── text │ │ └── TokenGeneratorTest.java │ │ └── util │ │ └── FileUtils.java │ └── resources │ ├── 255kb-text.txt │ ├── 256kb-text.txt │ ├── actions-event01.json │ ├── chatgpt │ ├── response1.json │ ├── response2.json │ ├── response3.json │ ├── response4.json │ ├── response5.json │ └── response6.json │ ├── compression-request-file.json │ ├── document.fkb64 │ ├── document_multiple.fkb64 │ ├── document_no_tags.fkb64 │ ├── document_patch.fkb64 │ ├── document_with_uuid.fkb64 │ ├── documents-compress-event.json │ ├── event-dynamodb01.json │ ├── event_sns_to_lambda1.json │ ├── event_sns_to_sqs_to_lambda1.json │ ├── multipart01.txt │ ├── multipart02.txt │ ├── objectcreate-event1.json │ ├── objectcreate-event2.json │ ├── objectcreate-event3.json │ ├── objectcreate-event4.json │ ├── objectcreate-event5.json │ ├── objectremove-event1-siteid.json │ ├── objectremove-event1.json │ ├── objectremove-event2-siteid.json │ ├── objectremove-event2.json │ ├── objectunknown-event1.json │ ├── objectupdate-event1.json │ ├── ses-event1.json │ ├── sqs-event-create01.json │ ├── temp-files-zip-created-event.json │ └── text │ ├── text01.txt │ └── text02.txt ├── lambda-typesense ├── .checkstyle ├── .classpath ├── .gitignore ├── .settings │ ├── org.eclipse.buildship.core.prefs │ ├── org.eclipse.core.resources.prefs │ ├── org.eclipse.jdt.core.prefs │ └── org.eclipse.jdt.ui.prefs ├── build.gradle ├── config │ └── checkstyle │ │ ├── checkstyle.xml │ │ ├── import-control.xml │ │ └── mysuppressions.xml ├── runtime │ └── bootstrap └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── formkiq │ │ │ └── module │ │ │ └── lambda │ │ │ └── typesense │ │ │ └── TypesenseProcessor.java │ └── resources │ │ └── cloudformation │ │ └── typesense │ │ └── template.yaml │ └── test │ ├── java │ └── com │ │ └── formkiq │ │ └── module │ │ └── lambda │ │ └── typesense │ │ └── TypesenseProcessorTest.java │ └── resources │ ├── case2_insert.json │ ├── case2_modify_content.json │ ├── case3_insert.json │ ├── case3_modify_content.json │ ├── insert.json │ ├── insert_deeplink.json │ ├── insert_siteId.json │ ├── insert_subdocument.json │ ├── insert_subdocument01.json │ ├── modify.json │ ├── remove01.json │ ├── remove02.json │ └── remove03.json ├── logo.png ├── module-email-notify ├── .checkstyle ├── .classpath ├── .gitignore ├── .settings │ ├── org.eclipse.buildship.core.prefs │ ├── org.eclipse.core.resources.prefs │ └── org.eclipse.jdt.core.prefs ├── Dockerfile ├── build.gradle ├── config │ └── checkstyle │ │ ├── checkstyle.xml │ │ ├── import-control.xml │ │ └── mysuppressions.xml ├── docker-compose.yml └── src │ ├── integration │ └── java │ │ └── com │ │ └── formkiq │ │ └── stacks │ │ └── module │ │ └── emailnotify │ │ └── awstest │ │ └── EmailSendingTest.java │ ├── main │ └── resources │ │ ├── cloudformation │ │ └── template.yaml │ │ └── js │ │ ├── index.js │ │ ├── package-lock.json │ │ ├── package.json │ │ └── test │ │ ├── json │ │ ├── sqs-event1.json │ │ └── sqs-event2.json │ │ └── test.js │ └── test │ └── resources │ └── .gitkeep ├── netty-server ├── .checkstyle ├── .classpath ├── .factorypath ├── .gitignore ├── Dockerfile ├── build.gradle ├── config │ └── checkstyle │ │ ├── checkstyle.xml │ │ ├── import-control.xml │ │ └── mysuppressions.xml ├── docker-compose-integration-override.yml ├── docker-compose-override.yml ├── docker-compose.yml ├── keycloak │ ├── Dockerfile │ └── formkiq-realm.json └── src │ ├── integration │ └── java │ │ └── com │ │ └── formkiq │ │ └── server │ │ ├── DockerComposeExtension.java │ │ └── IntegrationTest.java │ ├── main │ └── java │ │ └── com │ │ └── formkiq │ │ └── server │ │ ├── ApiGatewayHttpRequestHandler.java │ │ ├── AuthenticationLoginHttpRequestHandler.java │ │ ├── DynamoDbStreamToTypesense.java │ │ ├── HttpRequestHandler.java │ │ ├── HttpServer.java │ │ ├── HttpServerHandler.java │ │ ├── HttpServerInitializer.java │ │ ├── MinioS3HttpRequestHandler.java │ │ ├── NettyRequestHandler.java │ │ ├── NotSupportedHttpRequestHandler.java │ │ ├── OptionsHttpRequestHandler.java │ │ └── auth │ │ ├── IAuthCredentials.java │ │ ├── KeycloakAuthCredentials.java │ │ ├── SimpleAuthCredentials.java │ │ └── Tokens.java │ └── test │ ├── java │ └── com │ │ └── formkiq │ │ └── server │ │ ├── HttpServerTest.java │ │ ├── MinioExtension.java │ │ ├── MinioTestServices.java │ │ ├── NettyExtension.java │ │ └── auth │ │ └── SimpleAuthCredentialsTest.java │ └── resources │ └── .gitkeep ├── ocr ├── .checkstyle ├── .classpath ├── .gitignore ├── .settings │ ├── org.eclipse.buildship.core.prefs │ ├── org.eclipse.core.resources.prefs │ ├── org.eclipse.jdt.core.prefs │ └── org.eclipse.jdt.ui.prefs ├── build.gradle ├── config │ └── checkstyle │ │ ├── checkstyle.xml │ │ ├── import-control.xml │ │ └── mysuppressions.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── formkiq │ │ └── module │ │ └── ocr │ │ ├── DocumentOcrService.java │ │ ├── DocumentOcrServiceExtension.java │ │ ├── DocumentOcrServiceTesseract.java │ │ ├── DocumentsOcrRequestHandler.java │ │ ├── FormatConverter.java │ │ ├── FormatConverterResult.java │ │ ├── Ocr.java │ │ ├── OcrEngine.java │ │ ├── OcrOutputType.java │ │ ├── OcrRequest.java │ │ ├── OcrScanStatus.java │ │ ├── OcrSqsMessage.java │ │ ├── S3KeysNaturalComparator.java │ │ └── pdf │ │ └── PdfPortfolio.java │ └── test │ ├── java │ └── com │ │ └── formkiq │ │ └── module │ │ └── ocr │ │ ├── DocumentOcrServiceTesseractTest.java │ │ └── pdf │ │ └── PdfPortfolioTest.java │ └── resources │ └── portfolio.pdf ├── postman-generator.sh ├── settings.gradle ├── spotless.eclipseformat.xml ├── src └── main │ └── resources │ └── cloudformation │ ├── config.yaml │ ├── ecs-cluster.yaml │ ├── event-message.yaml │ ├── module-documentevent.yaml │ ├── monitoring.yaml │ ├── opensearch-bastion.yaml │ ├── ssm-template.yaml │ ├── template.yaml │ ├── vpc-import.yaml │ └── vpc.yaml ├── strings ├── .checkstyle ├── .classpath ├── .gitignore ├── build.gradle ├── config │ └── checkstyle │ │ ├── checkstyle.xml │ │ ├── import-control.xml │ │ └── mysuppressions.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── formkiq │ │ │ └── strings │ │ │ ├── StringFormatter.java │ │ │ ├── StringFormatterAlphaNumeric.java │ │ │ ├── Strings.java │ │ │ └── lexer │ │ │ ├── Token.java │ │ │ ├── TokenGenerator.java │ │ │ ├── TokenGeneratorKeywords.java │ │ │ └── TokenType.java │ └── resources │ │ └── .gitkeep │ └── test │ ├── java │ └── com │ │ └── formkiq │ │ └── strings │ │ ├── StringFormatterAlphaNumericTest.java │ │ ├── StringsTest.java │ │ └── lexer │ │ └── TokenGeneratorKeywordsTest.java │ └── resources │ └── empty2 ├── typesense ├── .checkstyle ├── .classpath ├── .gitignore ├── .settings │ ├── org.eclipse.buildship.core.prefs │ ├── org.eclipse.core.resources.prefs │ ├── org.eclipse.jdt.core.prefs │ └── org.eclipse.jdt.ui.prefs ├── build.gradle ├── config │ └── checkstyle │ │ ├── checkstyle.xml │ │ ├── import-control.xml │ │ └── mysuppressions.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── formkiq │ │ └── module │ │ └── typesense │ │ ├── TypeSenseService.java │ │ ├── TypeSenseServiceExtension.java │ │ └── TypeSenseServiceImpl.java │ └── test │ └── java │ └── com │ └── formkiq │ └── module │ └── typesense │ └── TypeSenseServiceImplTest.java ├── wait-for-dynamodb.sh ├── wait-for-localstack.sh └── websocket-api ├── .checkstyle ├── .classpath ├── .gitignore ├── .settings ├── org.eclipse.buildship.core.prefs ├── org.eclipse.core.resources.prefs └── org.eclipse.jdt.core.prefs ├── build.gradle ├── config └── checkstyle │ ├── checkstyle.xml │ ├── import-control.xml │ └── mysuppressions.xml └── src ├── integration └── java │ └── com │ └── formkiq │ └── stacks │ └── websocket │ └── awstest │ ├── WebSocketClientImpl.java │ └── WebsocketTest.java └── main └── resources ├── cloudformation └── template.yaml └── js ├── index.js ├── package-lock.json ├── package.json └── test ├── json ├── connect1.json ├── connect2.json └── disconnect1.json └── test.js /.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.github/workflows/snyk.yml: -------------------------------------------------------------------------------- 1 | name: Snyk Gradle (jdk17) 2 | on: 3 | workflow_dispatch: 4 | jobs: 5 | security: 6 | runs-on: ubuntu-latest 7 | steps: 8 | - uses: actions/checkout@master 9 | - name: Run Snyk to check for vulnerabilities 10 | uses: snyk/actions/gradle-jdk17@master 11 | continue-on-error: true # To make sure that SARIF upload gets called 12 | env: 13 | SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }} 14 | with: 15 | args: --all-projects --sarif-file-output=snyk.sarif 16 | - name: Upload result to GitHub Code Scanning 17 | uses: github/codeql-action/upload-sarif@v3 18 | with: 19 | sarif_file: snyk.sarif 20 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | .idea 3 | formkiq-core.iml 4 | build 5 | bin 6 | .DS_Store 7 | *.tgz 8 | *.zip 9 | .nyc_output 10 | lambda-cognito-user-signup/src/coverage 11 | lambda-dlq/src/coverage 12 | module-email-notify/src/coverage 13 | node_modules 14 | *.tmp 15 | !console/src/test/resources/test.zip 16 | websocket-api/src/coverage 17 | .settings 18 | -------------------------------------------------------------------------------- /.settings/org.eclipse.buildship.core.prefs: -------------------------------------------------------------------------------- 1 | arguments= 2 | auto.sync=false 3 | build.scans.enabled=false 4 | connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER) 5 | connection.project.dir= 6 | eclipse.preferences.version=1 7 | gradle.user.home= 8 | java.home= 9 | jvm.arguments= 10 | offline.mode=false 11 | override.workspace.settings=false 12 | show.console.view=false 13 | show.executions.view=false 14 | -------------------------------------------------------------------------------- /.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding/=UTF-8 3 | -------------------------------------------------------------------------------- /.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=17 3 | org.eclipse.jdt.core.compiler.compliance=17 4 | org.eclipse.jdt.core.compiler.source=17 5 | -------------------------------------------------------------------------------- /INSTALL.md: -------------------------------------------------------------------------------- 1 | # FormKiQ Core 2 | 3 | ## Installation 4 | 5 | Installation instruction for FormKiQ Core can be found at https://docs.formkiq.com/docs/getting-started/quick-start 6 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | /** 2 | * MIT License 3 | * 4 | * Copyright (c) 2018 - 2020 FormKiQ 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | */ -------------------------------------------------------------------------------- /SAM-CLI-with-FormKiQ-Document-Event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/SAM-CLI-with-FormKiQ-Document-Event.png -------------------------------------------------------------------------------- /actions/.checkstyle: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /actions/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /actions/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | /build/ 3 | /.gradle/ 4 | -------------------------------------------------------------------------------- /actions/.settings/org.eclipse.buildship.core.prefs: -------------------------------------------------------------------------------- 1 | arguments= 2 | auto.sync=false 3 | build.scans.enabled=false 4 | connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER) 5 | connection.project.dir= 6 | eclipse.preferences.version=1 7 | gradle.user.home= 8 | java.home= 9 | jvm.arguments= 10 | offline.mode=false 11 | override.workspace.settings=false 12 | show.console.view=false 13 | show.executions.view=false 14 | -------------------------------------------------------------------------------- /actions/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding/=UTF-8 3 | -------------------------------------------------------------------------------- /actions/.settings/org.eclipse.jdt.ui.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | formatter_profile=_GoogleStyle 3 | formatter_settings_version=16 4 | org.eclipse.jdt.ui.exception.name=e 5 | org.eclipse.jdt.ui.gettersetter.use.is=true 6 | org.eclipse.jdt.ui.keywordthis=true 7 | org.eclipse.jdt.ui.overrideannotation=true 8 | org.eclipse.jdt.ui.text.custom_code_templates= 9 | -------------------------------------------------------------------------------- /actions/build.gradle: -------------------------------------------------------------------------------- 1 | 2 | description = "FormKiQ Actions" 3 | 4 | dependencies { 5 | 6 | annotationProcessor group: 'com.formkiq', name: 'graalvm-annotations-processor', version: '1.4.2' 7 | 8 | implementation group: 'com.formkiq', name: 'graalvm-annotations', version: '1.2.0' 9 | 10 | implementation project(':aws-dynamodb') 11 | implementation project(':aws-sns') 12 | implementation project(':document-events') 13 | implementation project(':fkq-lambda-services') 14 | implementation project(':fkq-validation') 15 | 16 | testImplementation project(':dynamodb-documents') 17 | testImplementation project(':fkq-test-utils') 18 | testImplementation project(':fkq-plugins') 19 | testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version:'5.11.4' 20 | testImplementation group: 'org.testcontainers', name: 'testcontainers', version: '1.20.4' 21 | } 22 | 23 | test { 24 | failFast = true 25 | useJUnitPlatform() 26 | } -------------------------------------------------------------------------------- /actions/config/checkstyle/import-control.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /actions/config/checkstyle/mysuppressions.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /actions/src/main/resources/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/actions/src/main/resources/.gitkeep -------------------------------------------------------------------------------- /actions/src/test/resources/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/actions/src/test/resources/.gitkeep -------------------------------------------------------------------------------- /aws-cognito-identity/.checkstyle: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /aws-cognito-identity/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | /build/ 3 | /.gradle/ 4 | -------------------------------------------------------------------------------- /aws-cognito-identity/build.gradle: -------------------------------------------------------------------------------- 1 | 2 | description = "AWS Cognito Identity" 3 | 4 | dependencies { 5 | api group: 'software.amazon.awssdk', name: 'cognitoidentity', version: '2.29.51' 6 | implementation group: 'software.amazon.awssdk', name: 'cognitoidentityprovider', version: '2.29.51' 7 | implementation group: 'software.amazon.awssdk', name: 'url-connection-client', version: '2.29.51' 8 | 9 | configurations.all { 10 | exclude group: 'software.amazon.awssdk', module: 'apache-client' 11 | exclude group: 'software.amazon.awssdk', module: 'netty-nio-client' 12 | } 13 | } 14 | 15 | test { 16 | failFast = true 17 | useJUnitPlatform() 18 | } -------------------------------------------------------------------------------- /aws-cognito-identity/config/checkstyle/import-control.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /aws-cognito-identity/config/checkstyle/mysuppressions.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /aws-cognito-identity/src/main/resources/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/aws-cognito-identity/src/main/resources/.gitkeep -------------------------------------------------------------------------------- /aws-cognito-identity/src/test/java/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/aws-cognito-identity/src/test/java/.gitkeep -------------------------------------------------------------------------------- /aws-cognito-identityprovider/.checkstyle: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /aws-cognito-identityprovider/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | /build/ 3 | /.gradle/ 4 | -------------------------------------------------------------------------------- /aws-cognito-identityprovider/build.gradle: -------------------------------------------------------------------------------- 1 | 2 | description = "AWS Cognito Identity Provider" 3 | 4 | dependencies { 5 | api group: 'software.amazon.awssdk', name: 'cognitoidentityprovider', version: '2.29.51' 6 | implementation group: 'software.amazon.awssdk', name: 'url-connection-client', version: '2.29.51' 7 | implementation project(':fkq-lambda-services') 8 | 9 | configurations.all { 10 | exclude group: 'software.amazon.awssdk', module: 'apache-client' 11 | exclude group: 'software.amazon.awssdk', module: 'netty-nio-client' 12 | } 13 | } 14 | 15 | test { 16 | failFast = true 17 | useJUnitPlatform() 18 | } -------------------------------------------------------------------------------- /aws-cognito-identityprovider/config/checkstyle/import-control.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /aws-cognito-identityprovider/config/checkstyle/mysuppressions.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /aws-cognito-identityprovider/src/main/resources/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/aws-cognito-identityprovider/src/main/resources/.gitkeep -------------------------------------------------------------------------------- /aws-cognito-identityprovider/src/test/java/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/aws-cognito-identityprovider/src/test/java/.gitkeep -------------------------------------------------------------------------------- /aws-dynamodb/.checkstyle: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /aws-dynamodb/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | /build/ 3 | /.gradle/ 4 | -------------------------------------------------------------------------------- /aws-dynamodb/.settings/org.eclipse.buildship.core.prefs: -------------------------------------------------------------------------------- 1 | arguments= 2 | auto.sync=false 3 | build.scans.enabled=false 4 | connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER) 5 | connection.project.dir=.. 6 | eclipse.preferences.version=1 7 | gradle.user.home= 8 | java.home= 9 | jvm.arguments= 10 | offline.mode=false 11 | override.workspace.settings=false 12 | show.console.view=false 13 | show.executions.view=false 14 | -------------------------------------------------------------------------------- /aws-dynamodb/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding/=UTF-8 3 | -------------------------------------------------------------------------------- /aws-dynamodb/.settings/org.eclipse.jdt.ui.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | formatter_profile=_GoogleStyle 3 | formatter_settings_version=16 4 | org.eclipse.jdt.ui.exception.name=e 5 | org.eclipse.jdt.ui.gettersetter.use.is=true 6 | org.eclipse.jdt.ui.keywordthis=true 7 | org.eclipse.jdt.ui.overrideannotation=true 8 | org.eclipse.jdt.ui.text.custom_code_templates= 9 | -------------------------------------------------------------------------------- /aws-dynamodb/build.gradle: -------------------------------------------------------------------------------- 1 | 2 | description = "AWS DynamoDB" 3 | 4 | dependencies { 5 | 6 | annotationProcessor group: 'com.formkiq', name: 'graalvm-annotations-processor', version: '1.4.2' 7 | 8 | api group: 'software.amazon.awssdk', name: 'dynamodb', version: '2.29.51' 9 | implementation project(':fkq-lambda-services') 10 | //implementation project(':aws-xray') 11 | implementation group: 'software.amazon.awssdk', name: 'url-connection-client', version: '2.29.51' 12 | implementation group: 'com.formkiq', name: 'graalvm-annotations', version: '1.2.0' 13 | 14 | testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version:'5.11.4' 15 | testImplementation project(':fkq-test-utils') 16 | 17 | configurations.all { 18 | exclude group: 'software.amazon.awssdk', module: 'apache-client' 19 | exclude group: 'software.amazon.awssdk', module: 'netty-nio-client' 20 | } 21 | } 22 | 23 | test { 24 | failFast = true 25 | useJUnitPlatform() 26 | } -------------------------------------------------------------------------------- /aws-dynamodb/config/checkstyle/import-control.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /aws-dynamodb/config/checkstyle/mysuppressions.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /aws-dynamodb/src/main/resources/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/aws-dynamodb/src/main/resources/.gitkeep -------------------------------------------------------------------------------- /aws-dynamodb/src/test/resources/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/aws-dynamodb/src/test/resources/.gitkeep -------------------------------------------------------------------------------- /aws-eventbridge/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | /build/ 3 | /.gradle/ 4 | -------------------------------------------------------------------------------- /aws-eventbridge/build.gradle: -------------------------------------------------------------------------------- 1 | 2 | description = "AWS EventBridge" 3 | 4 | dependencies { 5 | 6 | api 'software.amazon.awssdk:eventbridge:2.27.7' 7 | implementation group: 'software.amazon.awssdk', name: 'url-connection-client', version: '2.29.51' 8 | //implementation project(':aws-xray') 9 | implementation project(':fkq-lambda-services') 10 | 11 | configurations.all { 12 | exclude group: 'software.amazon.awssdk', module: 'apache-client' 13 | exclude group: 'software.amazon.awssdk', module: 'netty-nio-client' 14 | } 15 | 16 | testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version:'5.11.4' 17 | } 18 | 19 | test { 20 | failFast = true 21 | useJUnitPlatform() 22 | } -------------------------------------------------------------------------------- /aws-eventbridge/config/checkstyle/import-control.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /aws-eventbridge/config/checkstyle/mysuppressions.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /aws-eventbridge/src/main/resources/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/aws-eventbridge/src/main/resources/.gitkeep -------------------------------------------------------------------------------- /aws-eventbridge/src/test/resources/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/aws-eventbridge/src/test/resources/.gitkeep -------------------------------------------------------------------------------- /aws-iam/.checkstyle: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /aws-iam/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /aws-iam/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | /build/ 3 | /.gradle/ 4 | -------------------------------------------------------------------------------- /aws-iam/.settings/org.eclipse.buildship.core.prefs: -------------------------------------------------------------------------------- 1 | connection.project.dir=.. 2 | eclipse.preferences.version=1 3 | -------------------------------------------------------------------------------- /aws-iam/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding/=UTF-8 3 | -------------------------------------------------------------------------------- /aws-iam/.settings/org.eclipse.jdt.ui.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | formatter_profile=_GoogleStyle 3 | formatter_settings_version=16 4 | org.eclipse.jdt.ui.exception.name=e 5 | org.eclipse.jdt.ui.gettersetter.use.is=true 6 | org.eclipse.jdt.ui.keywordthis=true 7 | org.eclipse.jdt.ui.overrideannotation=true 8 | org.eclipse.jdt.ui.text.custom_code_templates= 9 | -------------------------------------------------------------------------------- /aws-iam/build.gradle: -------------------------------------------------------------------------------- 1 | 2 | description = "AWS IAM" 3 | 4 | dependencies { 5 | api group: 'software.amazon.awssdk', name: 'iam', version: '2.29.51' 6 | implementation group: 'software.amazon.awssdk', name: 'url-connection-client', version: '2.29.51' 7 | 8 | configurations.all { 9 | exclude group: 'software.amazon.awssdk', module: 'apache-client' 10 | exclude group: 'software.amazon.awssdk', module: 'netty-nio-client' 11 | } 12 | } 13 | 14 | test { 15 | failFast = true 16 | useJUnitPlatform() 17 | } -------------------------------------------------------------------------------- /aws-iam/config/checkstyle/import-control.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /aws-iam/config/checkstyle/mysuppressions.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /aws-iam/src/main/resources/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/aws-iam/src/main/resources/.gitkeep -------------------------------------------------------------------------------- /aws-iam/src/test/java/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/aws-iam/src/test/java/.gitkeep -------------------------------------------------------------------------------- /aws-iam/src/test/resources/empty2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/aws-iam/src/test/resources/empty2 -------------------------------------------------------------------------------- /aws-lambda/.checkstyle: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /aws-lambda/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | /build/ 3 | /.gradle/ 4 | -------------------------------------------------------------------------------- /aws-lambda/.settings/org.eclipse.buildship.core.prefs: -------------------------------------------------------------------------------- 1 | connection.project.dir=.. 2 | eclipse.preferences.version=1 3 | -------------------------------------------------------------------------------- /aws-lambda/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding/=UTF-8 3 | -------------------------------------------------------------------------------- /aws-lambda/.settings/org.eclipse.jdt.ui.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | formatter_profile=_GoogleStyle 3 | formatter_settings_version=16 4 | org.eclipse.jdt.ui.exception.name=e 5 | org.eclipse.jdt.ui.gettersetter.use.is=true 6 | org.eclipse.jdt.ui.keywordthis=true 7 | org.eclipse.jdt.ui.overrideannotation=true 8 | org.eclipse.jdt.ui.text.custom_code_templates= 9 | -------------------------------------------------------------------------------- /aws-lambda/build.gradle: -------------------------------------------------------------------------------- 1 | 2 | description = "AWS Lambda" 3 | 4 | dependencies { 5 | api group: 'software.amazon.awssdk', name: 'lambda', version: '2.29.51' 6 | implementation group: 'software.amazon.awssdk', name: 'url-connection-client', version: '2.29.51' 7 | 8 | configurations.all { 9 | exclude group: 'software.amazon.awssdk', module: 'apache-client' 10 | exclude group: 'software.amazon.awssdk', module: 'netty-nio-client' 11 | } 12 | } 13 | 14 | test { 15 | failFast = true 16 | useJUnitPlatform() 17 | } -------------------------------------------------------------------------------- /aws-lambda/config/checkstyle/import-control.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /aws-lambda/config/checkstyle/mysuppressions.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /aws-lambda/src/main/resources/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/aws-lambda/src/main/resources/.gitkeep -------------------------------------------------------------------------------- /aws-lambda/src/test/java/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/aws-lambda/src/test/java/.gitkeep -------------------------------------------------------------------------------- /aws-lambda/src/test/resources/empty2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/aws-lambda/src/test/resources/empty2 -------------------------------------------------------------------------------- /aws-s3/.checkstyle: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /aws-s3/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /aws-s3/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | /build/ 3 | /.gradle/ 4 | -------------------------------------------------------------------------------- /aws-s3/.settings/org.eclipse.buildship.core.prefs: -------------------------------------------------------------------------------- 1 | connection.project.dir=.. 2 | eclipse.preferences.version=1 3 | -------------------------------------------------------------------------------- /aws-s3/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding/=UTF-8 3 | -------------------------------------------------------------------------------- /aws-s3/.settings/org.eclipse.jdt.ui.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | formatter_profile=_GoogleStyle 3 | formatter_settings_version=16 4 | org.eclipse.jdt.ui.exception.name=e 5 | org.eclipse.jdt.ui.gettersetter.use.is=true 6 | org.eclipse.jdt.ui.keywordthis=true 7 | org.eclipse.jdt.ui.overrideannotation=true 8 | org.eclipse.jdt.ui.text.custom_code_templates= 9 | -------------------------------------------------------------------------------- /aws-s3/build.gradle: -------------------------------------------------------------------------------- 1 | 2 | description = "AWS S3" 3 | 4 | dependencies { 5 | api group: 'software.amazon.awssdk', name: 's3', version: '2.29.51' 6 | implementation group: 'software.amazon.awssdk', name: 'url-connection-client', version: '2.29.51' 7 | implementation project(':fkq-lambda-services') 8 | //implementation project(':aws-xray') 9 | 10 | configurations.all { 11 | exclude group: 'software.amazon.awssdk', module: 'apache-client' 12 | exclude group: 'software.amazon.awssdk', module: 'netty-nio-client' 13 | } 14 | } 15 | 16 | test { 17 | failFast = true 18 | useJUnitPlatform() 19 | } -------------------------------------------------------------------------------- /aws-s3/config/checkstyle/import-control.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /aws-s3/config/checkstyle/mysuppressions.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /aws-s3/src/main/resources/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/aws-s3/src/main/resources/.gitkeep -------------------------------------------------------------------------------- /aws-s3/src/test/java/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/aws-s3/src/test/java/.gitkeep -------------------------------------------------------------------------------- /aws-s3/src/test/resources/empty2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/aws-s3/src/test/resources/empty2 -------------------------------------------------------------------------------- /aws-ses/.checkstyle: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /aws-ses/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /aws-ses/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | /build/ 3 | /.gradle/ 4 | -------------------------------------------------------------------------------- /aws-ses/build.gradle: -------------------------------------------------------------------------------- 1 | 2 | description = "AWS SES" 3 | 4 | dependencies { 5 | api group: 'software.amazon.awssdk', name: 'ses', version: '2.29.51' 6 | implementation group: 'software.amazon.awssdk', name: 'url-connection-client', version: '2.29.51' 7 | implementation project(':fkq-lambda-services') 8 | //implementation project(':aws-xray') 9 | 10 | testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version:'5.11.4' 11 | 12 | configurations.all { 13 | exclude group: 'software.amazon.awssdk', module: 'apache-client' 14 | exclude group: 'software.amazon.awssdk', module: 'netty-nio-client' 15 | } 16 | } 17 | 18 | test { 19 | failFast = true 20 | useJUnitPlatform() 21 | } -------------------------------------------------------------------------------- /aws-ses/config/checkstyle/import-control.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /aws-ses/config/checkstyle/mysuppressions.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /aws-ses/src/main/resources/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/aws-ses/src/main/resources/.gitkeep -------------------------------------------------------------------------------- /aws-ses/src/test/java/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/aws-ses/src/test/java/.gitkeep -------------------------------------------------------------------------------- /aws-sns/.checkstyle: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /aws-sns/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | /build/ 3 | /.gradle/ 4 | -------------------------------------------------------------------------------- /aws-sns/.settings/org.eclipse.buildship.core.prefs: -------------------------------------------------------------------------------- 1 | connection.project.dir=.. 2 | eclipse.preferences.version=1 3 | -------------------------------------------------------------------------------- /aws-sns/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding/=UTF-8 3 | -------------------------------------------------------------------------------- /aws-sns/.settings/org.eclipse.jdt.ui.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | formatter_profile=_GoogleStyle 3 | formatter_settings_version=16 4 | org.eclipse.jdt.ui.exception.name=e 5 | org.eclipse.jdt.ui.gettersetter.use.is=true 6 | org.eclipse.jdt.ui.keywordthis=true 7 | org.eclipse.jdt.ui.overrideannotation=true 8 | org.eclipse.jdt.ui.text.custom_code_templates= 9 | -------------------------------------------------------------------------------- /aws-sns/build.gradle: -------------------------------------------------------------------------------- 1 | 2 | description = "AWS SNS" 3 | 4 | dependencies { 5 | api 'software.amazon.awssdk:sns:2.29.51' 6 | implementation group: 'software.amazon.awssdk', name: 'url-connection-client', version: '2.29.51' 7 | //implementation project(':aws-xray') 8 | implementation project(':fkq-lambda-services') 9 | 10 | configurations.all { 11 | exclude group: 'software.amazon.awssdk', module: 'apache-client' 12 | exclude group: 'software.amazon.awssdk', module: 'netty-nio-client' 13 | } 14 | } 15 | 16 | test { 17 | failFast = true 18 | useJUnitPlatform() 19 | } -------------------------------------------------------------------------------- /aws-sns/config/checkstyle/import-control.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /aws-sns/config/checkstyle/mysuppressions.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /aws-sns/src/main/resources/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/aws-sns/src/main/resources/.gitkeep -------------------------------------------------------------------------------- /aws-sns/src/test/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/aws-sns/src/test/.gitkeep -------------------------------------------------------------------------------- /aws-sns/src/test/java/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/aws-sns/src/test/java/.gitkeep -------------------------------------------------------------------------------- /aws-sqs/.checkstyle: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /aws-sqs/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /aws-sqs/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | /build/ 3 | /.gradle/ 4 | -------------------------------------------------------------------------------- /aws-sqs/.settings/org.eclipse.buildship.core.prefs: -------------------------------------------------------------------------------- 1 | connection.project.dir=.. 2 | eclipse.preferences.version=1 3 | -------------------------------------------------------------------------------- /aws-sqs/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding/=UTF-8 3 | -------------------------------------------------------------------------------- /aws-sqs/.settings/org.eclipse.jdt.ui.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | formatter_profile=_GoogleStyle 3 | formatter_settings_version=16 4 | org.eclipse.jdt.ui.exception.name=e 5 | org.eclipse.jdt.ui.gettersetter.use.is=true 6 | org.eclipse.jdt.ui.keywordthis=true 7 | org.eclipse.jdt.ui.overrideannotation=true 8 | org.eclipse.jdt.ui.text.custom_code_templates= 9 | -------------------------------------------------------------------------------- /aws-sqs/build.gradle: -------------------------------------------------------------------------------- 1 | 2 | description = "AWS SQS" 3 | 4 | dependencies { 5 | 6 | annotationProcessor group: 'com.formkiq', name: 'graalvm-annotations-processor', version: '1.4.2' 7 | 8 | implementation group: 'com.formkiq', name: 'graalvm-annotations', version: '1.2.0' 9 | implementation group: 'com.google.code.gson', name: 'gson', version: '2.11.0' 10 | 11 | api 'software.amazon.awssdk:sqs:2.29.51' 12 | implementation group: 'software.amazon.awssdk', name: 'url-connection-client', version: '2.29.51' 13 | //implementation project(':aws-xray') 14 | implementation project(':fkq-lambda-services') 15 | 16 | configurations.all { 17 | exclude group: 'software.amazon.awssdk', module: 'apache-client' 18 | exclude group: 'software.amazon.awssdk', module: 'netty-nio-client' 19 | } 20 | 21 | testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version:'5.11.4' 22 | } 23 | 24 | test { 25 | failFast = true 26 | useJUnitPlatform() 27 | } -------------------------------------------------------------------------------- /aws-sqs/config/checkstyle/import-control.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /aws-sqs/config/checkstyle/mysuppressions.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /aws-sqs/src/main/resources/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/aws-sqs/src/main/resources/.gitkeep -------------------------------------------------------------------------------- /aws-sqs/src/test/resources/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/aws-sqs/src/test/resources/.gitkeep -------------------------------------------------------------------------------- /aws-ssm/.checkstyle: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /aws-ssm/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | /build/ 3 | /.gradle/ 4 | -------------------------------------------------------------------------------- /aws-ssm/.settings/org.eclipse.buildship.core.prefs: -------------------------------------------------------------------------------- 1 | connection.project.dir=.. 2 | eclipse.preferences.version=1 3 | -------------------------------------------------------------------------------- /aws-ssm/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding/=UTF-8 3 | -------------------------------------------------------------------------------- /aws-ssm/.settings/org.eclipse.jdt.ui.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | formatter_profile=_GoogleStyle 3 | formatter_settings_version=16 4 | org.eclipse.jdt.ui.exception.name=e 5 | org.eclipse.jdt.ui.gettersetter.use.is=true 6 | org.eclipse.jdt.ui.keywordthis=true 7 | org.eclipse.jdt.ui.overrideannotation=true 8 | org.eclipse.jdt.ui.text.custom_code_templates= 9 | -------------------------------------------------------------------------------- /aws-ssm/build.gradle: -------------------------------------------------------------------------------- 1 | 2 | description = "AWS SSM" 3 | 4 | dependencies { 5 | api group: 'software.amazon.awssdk', name: 'ssm', version: '2.29.51' 6 | implementation group: 'software.amazon.awssdk', name: 'url-connection-client', version: '2.29.51' 7 | //implementation project(':aws-xray') 8 | implementation project(':fkq-lambda-services') 9 | 10 | configurations.all { 11 | exclude group: 'software.amazon.awssdk', module: 'apache-client' 12 | exclude group: 'software.amazon.awssdk', module: 'netty-nio-client' 13 | } 14 | 15 | testImplementation group: 'org.slf4j', name: 'slf4j-simple', version: '2.0.7' 16 | testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version:'5.11.4' 17 | testImplementation group: 'org.testcontainers', name: 'localstack', version: '1.20.4' 18 | } 19 | 20 | test { 21 | failFast = true 22 | useJUnitPlatform() 23 | } -------------------------------------------------------------------------------- /aws-ssm/config/checkstyle/import-control.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /aws-ssm/config/checkstyle/mysuppressions.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /aws-ssm/src/main/resources/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/aws-ssm/src/main/resources/.gitkeep -------------------------------------------------------------------------------- /aws-ssm/src/test/resources/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/aws-ssm/src/test/resources/.gitkeep -------------------------------------------------------------------------------- /aws-sts/.checkstyle: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /aws-sts/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | /build/ 3 | /.gradle/ 4 | -------------------------------------------------------------------------------- /aws-sts/.settings/org.eclipse.buildship.core.prefs: -------------------------------------------------------------------------------- 1 | connection.project.dir=.. 2 | eclipse.preferences.version=1 3 | -------------------------------------------------------------------------------- /aws-sts/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding/=UTF-8 3 | -------------------------------------------------------------------------------- /aws-sts/.settings/org.eclipse.jdt.ui.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | formatter_profile=_GoogleStyle 3 | formatter_settings_version=16 4 | org.eclipse.jdt.ui.exception.name=e 5 | org.eclipse.jdt.ui.gettersetter.use.is=true 6 | org.eclipse.jdt.ui.keywordthis=true 7 | org.eclipse.jdt.ui.overrideannotation=true 8 | org.eclipse.jdt.ui.text.custom_code_templates= 9 | -------------------------------------------------------------------------------- /aws-sts/build.gradle: -------------------------------------------------------------------------------- 1 | 2 | description = "AWS STS" 3 | 4 | dependencies { 5 | api group: 'software.amazon.awssdk', name: 'sts', version: '2.29.51' 6 | implementation group: 'software.amazon.awssdk', name: 'url-connection-client', version: '2.29.51' 7 | implementation group: 'commons-codec', name: 'commons-codec', version: '1.17.2' 8 | 9 | testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version:'5.11.4' 10 | 11 | configurations.all { 12 | exclude group: 'software.amazon.awssdk', module: 'apache-client' 13 | exclude group: 'software.amazon.awssdk', module: 'netty-nio-client' 14 | } 15 | } 16 | 17 | test { 18 | failFast = true 19 | useJUnitPlatform() 20 | } -------------------------------------------------------------------------------- /aws-sts/config/checkstyle/import-control.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /aws-sts/config/checkstyle/mysuppressions.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /aws-sts/src/main/resources/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/aws-sts/src/main/resources/.gitkeep -------------------------------------------------------------------------------- /aws-sts/src/test/java/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/aws-sts/src/test/java/.gitkeep -------------------------------------------------------------------------------- /aws-sts/src/test/resources/empty2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/aws-sts/src/test/resources/empty2 -------------------------------------------------------------------------------- /aws-xray/.checkstyle: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /aws-xray/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | /build/ 3 | /.gradle/ 4 | -------------------------------------------------------------------------------- /aws-xray/.settings/org.eclipse.buildship.core.prefs: -------------------------------------------------------------------------------- 1 | arguments= 2 | auto.sync=false 3 | build.scans.enabled=false 4 | connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER) 5 | connection.project.dir=.. 6 | eclipse.preferences.version=1 7 | gradle.user.home= 8 | java.home= 9 | jvm.arguments= 10 | offline.mode=false 11 | override.workspace.settings=false 12 | show.console.view=false 13 | show.executions.view=false 14 | -------------------------------------------------------------------------------- /aws-xray/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding/=UTF-8 3 | -------------------------------------------------------------------------------- /aws-xray/.settings/org.eclipse.jdt.ui.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | formatter_profile=_GoogleStyle 3 | formatter_settings_version=16 4 | org.eclipse.jdt.ui.exception.name=e 5 | org.eclipse.jdt.ui.gettersetter.use.is=true 6 | org.eclipse.jdt.ui.keywordthis=true 7 | org.eclipse.jdt.ui.overrideannotation=true 8 | org.eclipse.jdt.ui.text.custom_code_templates= 9 | -------------------------------------------------------------------------------- /aws-xray/build.gradle: -------------------------------------------------------------------------------- 1 | 2 | description = "AWS X-Ray" 3 | 4 | dependencies { 5 | api group: 'com.amazonaws', name: 'aws-xray-recorder-sdk-aws-sdk-v2', version: '2.15.0' 6 | } 7 | 8 | test { 9 | failFast = true 10 | useJUnitPlatform() 11 | } -------------------------------------------------------------------------------- /aws-xray/config/checkstyle/import-control.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /aws-xray/config/checkstyle/mysuppressions.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /aws-xray/src/main/java/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/aws-xray/src/main/java/.gitkeep -------------------------------------------------------------------------------- /aws-xray/src/main/resources/META-INF/native-image/com.formkiq/aws-xray/reflect-config.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name": "org.apache.commons.logging.impl.LogFactoryImpl", 4 | "methods": [ 5 | { 6 | "name": "", 7 | "parameterTypes": [] 8 | } 9 | ] 10 | }, 11 | { 12 | "name": "org.apache.commons.logging.impl.Jdk14Logger", 13 | "methods": [ 14 | { 15 | "name": "", 16 | "parameterTypes": [ 17 | "java.lang.String" 18 | ] 19 | } 20 | ] 21 | }, 22 | { 23 | "name": "java.util.HashSet", 24 | "queryAllDeclaredMethods": true, 25 | "queryAllDeclaredConstructors": true, 26 | "methods": [ 27 | { 28 | "name": "", 29 | "parameterTypes": [] 30 | } 31 | ] 32 | } 33 | ] -------------------------------------------------------------------------------- /aws-xray/src/test/java/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/aws-xray/src/test/java/.gitkeep -------------------------------------------------------------------------------- /aws-xray/src/test/resources/.gitkeep-aws-xray: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/aws-xray/src/test/resources/.gitkeep-aws-xray -------------------------------------------------------------------------------- /console/.checkstyle: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /console/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.md] 12 | max_line_length = off 13 | trim_trailing_whitespace = false 14 | -------------------------------------------------------------------------------- /console/.gitignore: -------------------------------------------------------------------------------- 1 | # See http://help.github.com/ignore-files/ for more about ignoring files. 2 | 3 | # compiled output 4 | /dist 5 | /tmp 6 | /out-tsc 7 | # Only exists if Bazel was run 8 | /bazel-out 9 | 10 | # dependencies 11 | /node_modules 12 | 13 | # profiling files 14 | chrome-profiler-events.json 15 | speed-measure-plugin.json 16 | 17 | # IDEs and editors 18 | /.idea 19 | .project 20 | .classpath 21 | .c9/ 22 | *.launch 23 | .settings/ 24 | *.sublime-workspace 25 | 26 | # IDE - VSCode 27 | .vscode/* 28 | !.vscode/settings.json 29 | !.vscode/tasks.json 30 | !.vscode/launch.json 31 | !.vscode/extensions.json 32 | .history/* 33 | 34 | # misc 35 | /.sass-cache 36 | /connect.lock 37 | /coverage 38 | /libpeerconnection.log 39 | npm-debug.log 40 | yarn-error.log 41 | testem.log 42 | /typings 43 | 44 | # System Files 45 | .DS_Store 46 | Thumbs.db 47 | 48 | #amplify 49 | amplify/\#current-cloud-backend 50 | amplify/.config/local-* 51 | amplify/backend/amplify-meta.json 52 | amplify/backend/awscloudformation 53 | build/ 54 | dist/ 55 | node_modules/ 56 | aws-exports.js 57 | awsconfiguration.json 58 | /.gradle/ 59 | -------------------------------------------------------------------------------- /console/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM public.ecr.aws/lambda/java:11 2 | 3 | COPY ./build/tmp/console/ /var/task/ 4 | 5 | # Set the CMD to your handler (could also be done as a parameter override outside of the Dockerfile) 6 | CMD [ "com.formkiq.stacks.console.ConsoleInstallHandler" ] -------------------------------------------------------------------------------- /console/README.md: -------------------------------------------------------------------------------- 1 | # AWS-Cognito-Tutorials 2 | Code from Cognito Youtube Tutorials (Youtube: Nikhil Rao) 3 | 4 | SDK's Needed 5 | ------------ 6 | - https://sdk.amazonaws.com/js/aws-sdk-2.7.16.min.js 7 | - amazon-cognito-identity.min.js 8 | 9 | Other Resources 10 | --------------- 11 | The full How-to can be found at https://docs.aws.amazon.com/cognito/latest/developerguide/tutorial-integrating-user-pools-javascript.html#tutorial-integrating-user-pools-user-sign-in-javascript 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /console/config/checkstyle/import-control.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /console/config/checkstyle/mysuppressions.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /console/src/test/resources/test.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/console/src/test/resources/test.zip -------------------------------------------------------------------------------- /docker-compose-dynamodb.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | services: 3 | dynamodb: 4 | image: amazon/dynamodb-local:1.22.0 5 | ports: 6 | - 8000:8000 7 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.8' 2 | services: 3 | dynamodb: 4 | command: "-jar DynamoDBLocal.jar -sharedDb -dbPath ./data" 5 | image: "amazon/dynamodb-local:latest" 6 | ports: 7 | - "8000:8000" 8 | volumes: 9 | - "./docker/dynamodb:/home/dynamodblocal/data" 10 | working_dir: /home/dynamodblocal 11 | localstack: 12 | image: localstack/localstack:2.1 13 | ports: 14 | - "127.0.0.1:4566:4566" # LocalStack Gateway 15 | - "127.0.0.1:4510-4559:4510-4559" # ext services port range 16 | - "127.0.0.1:53:53" # DNS config 17 | - "127.0.0.1:53:53/udp" # DNS config 18 | - "127.0.0.1:443:443" # LocalStack HTTPS Gateway 19 | environment: 20 | - DEBUG=1 21 | - PERSISTENCE=${PERSISTENCE-} 22 | - DOCKER_HOST=unix:///var/run/docker.sock 23 | - LS_LOG=trace 24 | volumes: 25 | - "${LOCALSTACK_VOLUME_DIR:-./volume}:/var/lib/localstack" 26 | - "/var/run/docker.sock:/var/run/docker.sock" -------------------------------------------------------------------------------- /docs/images/formkiq_architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/docs/images/formkiq_architecture.png -------------------------------------------------------------------------------- /docs/images/multi-tier-architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/docs/images/multi-tier-architecture.png -------------------------------------------------------------------------------- /document-events/.checkstyle: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /document-events/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | /build/ 3 | /.gradle/ 4 | -------------------------------------------------------------------------------- /document-events/.settings/org.eclipse.buildship.core.prefs: -------------------------------------------------------------------------------- 1 | arguments= 2 | auto.sync=false 3 | build.scans.enabled=false 4 | connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER) 5 | connection.project.dir=.. 6 | eclipse.preferences.version=1 7 | gradle.user.home= 8 | java.home= 9 | jvm.arguments= 10 | offline.mode=false 11 | override.workspace.settings=false 12 | show.console.view=false 13 | show.executions.view=false 14 | -------------------------------------------------------------------------------- /document-events/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding/=UTF-8 3 | -------------------------------------------------------------------------------- /document-events/.settings/org.eclipse.jdt.ui.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | formatter_profile=_GoogleStyle 3 | formatter_settings_version=16 4 | org.eclipse.jdt.ui.exception.name=e 5 | org.eclipse.jdt.ui.gettersetter.use.is=true 6 | org.eclipse.jdt.ui.keywordthis=true 7 | org.eclipse.jdt.ui.overrideannotation=true 8 | org.eclipse.jdt.ui.text.custom_code_templates= 9 | -------------------------------------------------------------------------------- /document-events/build.gradle: -------------------------------------------------------------------------------- 1 | 2 | description = "FormKiQ Document Events" 3 | 4 | dependencies { 5 | 6 | annotationProcessor group: 'com.formkiq', name: 'graalvm-annotations-processor', version: '1.4.2' 7 | implementation project(':aws-sns') 8 | implementation project(':fkq-lambda-services') 9 | implementation group: 'com.amazonaws', name: 'aws-lambda-java-core', version: '1.2.3' 10 | implementation group: 'com.formkiq', name: 'graalvm-annotations', version: '1.2.0' 11 | implementation group: 'com.google.code.gson', name: 'gson', version: '2.11.0' 12 | 13 | testImplementation project(':fkq-test-utils') 14 | testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version:'5.11.4' 15 | } 16 | 17 | test { 18 | failFast = true 19 | useJUnitPlatform() 20 | } 21 | -------------------------------------------------------------------------------- /document-events/config/checkstyle/import-control.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /document-events/config/checkstyle/mysuppressions.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /document-events/src/main/resources/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/document-events/src/main/resources/.gitkeep -------------------------------------------------------------------------------- /document-events/src/test/resources/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/document-events/src/test/resources/.gitkeep -------------------------------------------------------------------------------- /dynamodb-documents/.checkstyle: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /dynamodb-documents/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | /build/ 3 | -------------------------------------------------------------------------------- /dynamodb-documents/.settings/org.eclipse.buildship.core.prefs: -------------------------------------------------------------------------------- 1 | connection.project.dir=.. 2 | eclipse.preferences.version=1 3 | -------------------------------------------------------------------------------- /dynamodb-documents/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding/=UTF-8 3 | -------------------------------------------------------------------------------- /dynamodb-documents/.settings/org.eclipse.jdt.ui.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | formatter_profile=_GoogleStyle 3 | formatter_settings_version=16 4 | -------------------------------------------------------------------------------- /dynamodb-documents/config/checkstyle/mysuppressions.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /dynamodb-documents/documentsTableSchema.numbers: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/dynamodb-documents/documentsTableSchema.numbers -------------------------------------------------------------------------------- /dynamodb-documents/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/dynamodb-documents/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /dynamodb-documents/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.2.1-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /dynamodb-documents/src/test/resources/Cache.json: -------------------------------------------------------------------------------- 1 | { 2 | "TableName": "Cache", 3 | "KeySchema": [ 4 | { 5 | "AttributeName": "PK", 6 | "KeyType": "HASH" 7 | }, 8 | { 9 | "AttributeName": "SK", 10 | "KeyType": "RANGE" 11 | } 12 | ], 13 | "AttributeDefinitions": [ 14 | { 15 | "AttributeName": "PK", 16 | "AttributeType": "S" 17 | }, 18 | { 19 | "AttributeName": "SK", 20 | "AttributeType": "S" 21 | } 22 | ], 23 | "ProvisionedThroughput": { 24 | "ReadCapacityUnits": 10, 25 | "WriteCapacityUnits": 10 26 | } 27 | } -------------------------------------------------------------------------------- /emptyVersionedBucket.py: -------------------------------------------------------------------------------- 1 | import boto3 2 | import argparse 3 | import sys 4 | from botocore.exceptions import BotoCoreError 5 | from botocore.exceptions import ClientError 6 | 7 | 8 | def run(): 9 | global args 10 | args = parse_args() 11 | 12 | if args.profile: 13 | session = boto3.Session(profile_name=args.profile) 14 | else: 15 | session = boto3.Session() 16 | 17 | s3 = session.resource(service_name='s3') 18 | bucket = s3.Bucket(args.bucket) 19 | bucket.object_versions.delete() 20 | 21 | if args.delete_bucket: 22 | bucket.delete() 23 | 24 | 25 | def parse_args(): 26 | description = "Delete all objects and versions from Version Enabled S3 Bucket" 27 | 28 | parser = argparse.ArgumentParser(description=description) 29 | parser.add_argument('-b', '--bucket', required=True, 30 | help='A vaild s3 bucket name') 31 | parser.add_argument('-p', '--profile', 32 | help='A AWS profile name located in ~/.aws/config') 33 | parser.add_argument('-d', '--delete_bucket', action='store_true', 34 | help='Remove the bucket after emptying') 35 | 36 | return parser.parse_args() 37 | 38 | 39 | code = 0 40 | 41 | try: 42 | run() 43 | except (BotoCoreError, ClientError) as e: 44 | print(e.response['Error']['Code']) 45 | code = 1 46 | except Exception as e: 47 | raise 48 | code = 2 49 | 50 | 51 | sys.exit(code) 52 | 53 | -------------------------------------------------------------------------------- /fkq-lambda-core/.checkstyle: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /fkq-lambda-core/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | /build/ 3 | /.gradle/ 4 | -------------------------------------------------------------------------------- /fkq-lambda-core/.settings/org.eclipse.buildship.core.prefs: -------------------------------------------------------------------------------- 1 | arguments= 2 | auto.sync=false 3 | build.scans.enabled=false 4 | connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER) 5 | connection.project.dir=.. 6 | eclipse.preferences.version=1 7 | gradle.user.home= 8 | java.home= 9 | jvm.arguments= 10 | offline.mode=false 11 | override.workspace.settings=false 12 | show.console.view=false 13 | show.executions.view=false 14 | -------------------------------------------------------------------------------- /fkq-lambda-core/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding/=UTF-8 3 | -------------------------------------------------------------------------------- /fkq-lambda-core/.settings/org.eclipse.jdt.ui.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | formatter_profile=_GoogleStyle 3 | formatter_settings_version=16 4 | org.eclipse.jdt.ui.exception.name=e 5 | org.eclipse.jdt.ui.gettersetter.use.is=true 6 | org.eclipse.jdt.ui.keywordthis=true 7 | org.eclipse.jdt.ui.overrideannotation=true 8 | org.eclipse.jdt.ui.text.custom_code_templates= 9 | -------------------------------------------------------------------------------- /fkq-lambda-core/build.gradle: -------------------------------------------------------------------------------- 1 | 2 | description = "FormKiQ Lambda Core" 3 | 4 | dependencies { 5 | annotationProcessor group: 'com.formkiq', name: 'graalvm-annotations-processor', version: '1.4.2' 6 | implementation project(':strings') 7 | implementation project(':aws-s3') 8 | implementation project(':aws-sqs') 9 | implementation project(':aws-ssm') 10 | implementation project(':aws-sns') 11 | implementation project(':aws-dynamodb') 12 | implementation project(':fkq-plugins') 13 | implementation project(':fkq-lambda-services') 14 | implementation project(':fkq-validation') 15 | 16 | implementation group: 'com.amazonaws', name: 'aws-lambda-java-core', version: '1.2.3' 17 | implementation group: 'com.google.code.gson', name: 'gson', version: '2.11.0' 18 | implementation group: 'com.formkiq', name: 'graalvm-annotations', version: '1.2.0' 19 | implementation group: 'software.amazon.awssdk', name: 'utils', version: '2.29.51' 20 | 21 | testImplementation project(':fkq-test-utils') 22 | testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version:'5.11.4' 23 | testImplementation group: 'org.testcontainers', name: 'testcontainers', version: '1.20.4' 24 | testImplementation group: 'org.testcontainers', name: 'localstack', version: '1.20.4' 25 | } 26 | 27 | test { 28 | failFast = true 29 | useJUnitPlatform() 30 | } -------------------------------------------------------------------------------- /fkq-lambda-core/config/checkstyle/mysuppressions.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /fkq-lambda-core/src/main/resources/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/fkq-lambda-core/src/main/resources/.gitkeep -------------------------------------------------------------------------------- /fkq-lambda-core/src/test/resources/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/fkq-lambda-core/src/test/resources/.gitkeep -------------------------------------------------------------------------------- /fkq-lambda-services/.checkstyle: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /fkq-lambda-services/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | /build/ 3 | /.gradle/ 4 | -------------------------------------------------------------------------------- /fkq-lambda-services/.settings/org.eclipse.buildship.core.prefs: -------------------------------------------------------------------------------- 1 | arguments= 2 | auto.sync=false 3 | build.scans.enabled=false 4 | connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER) 5 | connection.project.dir=.. 6 | eclipse.preferences.version=1 7 | gradle.user.home= 8 | java.home= 9 | jvm.arguments= 10 | offline.mode=false 11 | override.workspace.settings=false 12 | show.console.view=false 13 | show.executions.view=false 14 | -------------------------------------------------------------------------------- /fkq-lambda-services/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding/=UTF-8 3 | -------------------------------------------------------------------------------- /fkq-lambda-services/.settings/org.eclipse.jdt.ui.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | formatter_profile=_GoogleStyle 3 | formatter_settings_version=16 4 | org.eclipse.jdt.ui.exception.name=e 5 | org.eclipse.jdt.ui.gettersetter.use.is=true 6 | org.eclipse.jdt.ui.keywordthis=true 7 | org.eclipse.jdt.ui.overrideannotation=true 8 | org.eclipse.jdt.ui.text.custom_code_templates= 9 | -------------------------------------------------------------------------------- /fkq-lambda-services/build.gradle: -------------------------------------------------------------------------------- 1 | 2 | description = "FormKiQ Lambda Services" 3 | 4 | dependencies { 5 | implementation group: 'software.amazon.awssdk', name: 'auth', version: '2.29.51' 6 | testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version:'5.11.4' 7 | testImplementation group: 'com.google.code.gson', name: 'gson', version: '2.12.1' 8 | } 9 | 10 | test { 11 | failFast = true 12 | useJUnitPlatform() 13 | } 14 | -------------------------------------------------------------------------------- /fkq-lambda-services/config/checkstyle/import-control.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /fkq-lambda-services/config/checkstyle/mysuppressions.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /fkq-lambda-services/src/main/resources/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/fkq-lambda-services/src/main/resources/.gitkeep -------------------------------------------------------------------------------- /fkq-lambda-services/src/test/resources/empty2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/fkq-lambda-services/src/test/resources/empty2 -------------------------------------------------------------------------------- /fkq-plugins/.checkstyle: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /fkq-plugins/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | /build/ 3 | /.gradle/ 4 | -------------------------------------------------------------------------------- /fkq-plugins/.settings/org.eclipse.buildship.core.prefs: -------------------------------------------------------------------------------- 1 | arguments= 2 | auto.sync=false 3 | build.scans.enabled=false 4 | connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER) 5 | connection.project.dir=.. 6 | eclipse.preferences.version=1 7 | gradle.user.home= 8 | java.home= 9 | jvm.arguments= 10 | offline.mode=false 11 | override.workspace.settings=false 12 | show.console.view=false 13 | show.executions.view=false 14 | -------------------------------------------------------------------------------- /fkq-plugins/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding/=UTF-8 3 | -------------------------------------------------------------------------------- /fkq-plugins/.settings/org.eclipse.jdt.ui.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | formatter_profile=_GoogleStyle 3 | formatter_settings_version=16 4 | org.eclipse.jdt.ui.exception.name=e 5 | org.eclipse.jdt.ui.gettersetter.use.is=true 6 | org.eclipse.jdt.ui.keywordthis=true 7 | org.eclipse.jdt.ui.overrideannotation=true 8 | org.eclipse.jdt.ui.text.custom_code_templates= 9 | -------------------------------------------------------------------------------- /fkq-plugins/build.gradle: -------------------------------------------------------------------------------- 1 | 2 | description = "FKQ Plugins" 3 | 4 | dependencies { 5 | implementation project(':aws-dynamodb') 6 | implementation project(':fkq-lambda-services') 7 | implementation project(':fkq-validation') 8 | } 9 | 10 | test { 11 | failFast = true 12 | useJUnitPlatform() 13 | } -------------------------------------------------------------------------------- /fkq-plugins/config/checkstyle/import-control.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /fkq-plugins/config/checkstyle/mysuppressions.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /fkq-plugins/src/main/resources/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/fkq-plugins/src/main/resources/.gitkeep -------------------------------------------------------------------------------- /fkq-plugins/src/test/java/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/fkq-plugins/src/test/java/.gitkeep -------------------------------------------------------------------------------- /fkq-plugins/src/test/resources/.gitkeep-fkq-plugins: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/fkq-plugins/src/test/resources/.gitkeep-fkq-plugins -------------------------------------------------------------------------------- /fkq-test-utils/.checkstyle: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /fkq-test-utils/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | /build/ 3 | /.gradle/ 4 | -------------------------------------------------------------------------------- /fkq-test-utils/.settings/org.eclipse.buildship.core.prefs: -------------------------------------------------------------------------------- 1 | arguments= 2 | auto.sync=false 3 | build.scans.enabled=false 4 | connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER) 5 | connection.project.dir=.. 6 | eclipse.preferences.version=1 7 | gradle.user.home= 8 | java.home= 9 | jvm.arguments= 10 | offline.mode=false 11 | override.workspace.settings=false 12 | show.console.view=false 13 | show.executions.view=false 14 | -------------------------------------------------------------------------------- /fkq-test-utils/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding/=UTF-8 3 | -------------------------------------------------------------------------------- /fkq-test-utils/.settings/org.eclipse.jdt.ui.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | formatter_profile=_GoogleStyle 3 | formatter_settings_version=16 4 | org.eclipse.jdt.ui.exception.name=e 5 | org.eclipse.jdt.ui.gettersetter.use.is=true 6 | org.eclipse.jdt.ui.keywordthis=true 7 | org.eclipse.jdt.ui.overrideannotation=true 8 | org.eclipse.jdt.ui.text.custom_code_templates= 9 | -------------------------------------------------------------------------------- /fkq-test-utils/build.gradle: -------------------------------------------------------------------------------- 1 | 2 | description = "FormKiQ Test Utils" 3 | 4 | dependencies { 5 | implementation project(':aws-cognito-identity') 6 | implementation project(':aws-cognito-identityprovider') 7 | implementation project(':aws-s3') 8 | api project(':aws-sns') 9 | api project(':aws-sqs') 10 | implementation project(':aws-ssm') 11 | implementation project(':aws-dynamodb') 12 | implementation project(':fkq-lambda-services') 13 | 14 | implementation group: 'com.amazonaws', name: 'aws-lambda-java-core', version: '1.2.3' 15 | api group: 'com.formkiq', name: 'client', version:'1.17.0' 16 | implementation group: 'com.google.code.gson', name: 'gson', version: '2.11.0' 17 | implementation group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version:'5.11.4' 18 | implementation group: 'org.testcontainers', name: 'testcontainers', version: '1.20.4' 19 | implementation group: 'org.testcontainers', name: 'localstack', version: '1.20.4' 20 | api group: 'org.mock-server', name: 'mockserver-netty', version: '5.15.0' 21 | implementation group: 'io.jsonwebtoken', name: 'jjwt-api', version: '0.12.6' 22 | implementation group: 'io.jsonwebtoken', name: 'jjwt-impl', version: '0.12.6' 23 | implementation group: 'io.jsonwebtoken', name: 'jjwt-gson', version: '0.12.6' 24 | } 25 | 26 | test { 27 | failFast = true 28 | useJUnitPlatform() 29 | } 30 | -------------------------------------------------------------------------------- /fkq-test-utils/config/checkstyle/mysuppressions.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /fkq-test-utils/src/main/resources/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/fkq-test-utils/src/main/resources/.gitkeep -------------------------------------------------------------------------------- /fkq-test-utils/src/test/java/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/fkq-test-utils/src/test/java/.gitkeep -------------------------------------------------------------------------------- /fkq-test-utils/src/test/resources/empty2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/fkq-test-utils/src/test/resources/empty2 -------------------------------------------------------------------------------- /fkq-validation/.checkstyle: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /fkq-validation/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | /build/ 3 | /.gradle/ 4 | -------------------------------------------------------------------------------- /fkq-validation/.settings/org.eclipse.buildship.core.prefs: -------------------------------------------------------------------------------- 1 | arguments= 2 | auto.sync=false 3 | build.scans.enabled=false 4 | connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER) 5 | connection.project.dir=.. 6 | eclipse.preferences.version=1 7 | gradle.user.home= 8 | java.home= 9 | jvm.arguments= 10 | offline.mode=false 11 | override.workspace.settings=false 12 | show.console.view=false 13 | show.executions.view=false 14 | -------------------------------------------------------------------------------- /fkq-validation/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding/=UTF-8 3 | -------------------------------------------------------------------------------- /fkq-validation/.settings/org.eclipse.jdt.ui.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | formatter_profile=_GoogleStyle 3 | formatter_settings_version=16 4 | org.eclipse.jdt.ui.exception.name=e 5 | org.eclipse.jdt.ui.gettersetter.use.is=true 6 | org.eclipse.jdt.ui.keywordthis=true 7 | org.eclipse.jdt.ui.overrideannotation=true 8 | org.eclipse.jdt.ui.text.custom_code_templates= 9 | -------------------------------------------------------------------------------- /fkq-validation/build.gradle: -------------------------------------------------------------------------------- 1 | 2 | description = "FKQ Validation Library" 3 | 4 | dependencies { 5 | annotationProcessor group: 'com.formkiq', name: 'graalvm-annotations-processor', version: '1.4.2' 6 | implementation group: 'com.formkiq', name: 'graalvm-annotations', version: '1.2.0' 7 | } 8 | 9 | test { 10 | failFast = true 11 | useJUnitPlatform() 12 | } -------------------------------------------------------------------------------- /fkq-validation/config/checkstyle/import-control.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /fkq-validation/config/checkstyle/mysuppressions.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /fkq-validation/src/main/resources/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/fkq-validation/src/main/resources/.gitkeep -------------------------------------------------------------------------------- /fkq-validation/src/test/java/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/fkq-validation/src/test/java/.gitkeep -------------------------------------------------------------------------------- /fkq-validation/src/test/resources/empty2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/fkq-validation/src/test/resources/empty2 -------------------------------------------------------------------------------- /fq-gh-social.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/fq-gh-social.png -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.parallel=true 2 | org.gradle.console=verbose 3 | org.gradle.caching=true 4 | org.gradle.jvmargs=-Xmx6g -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 5 | org.gradle.configureondemand=true 6 | 7 | ########################## 8 | # gradle.properties 9 | # 10 | # testregion - the name of the AWS Region to deploy to (us-east-1,us-east-2,etc) 11 | # testprofile - the name of the AWS CLI profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) 12 | # testappenvironment - the name of the FormKiQ App Environment (test,prd,dev) 13 | # testchatgptapikey - Openai.com (ChatGpt API Key) 14 | # 15 | ########################## 16 | 17 | testregion=us-east-1 18 | testappenvironment=test 19 | testprofile=default 20 | testchatgptapikey= 21 | testeventbridgename= 22 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip 4 | networkTimeout=10000 5 | validateDistributionUrl=true 6 | zipStoreBase=GRADLE_USER_HOME 7 | zipStorePath=wrapper/dists 8 | -------------------------------------------------------------------------------- /http-sigv4/.checkstyle: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /http-sigv4/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | /build/ 3 | /.gradle/ 4 | -------------------------------------------------------------------------------- /http-sigv4/.settings/org.eclipse.buildship.core.prefs: -------------------------------------------------------------------------------- 1 | arguments= 2 | auto.sync=false 3 | build.scans.enabled=false 4 | connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER) 5 | connection.project.dir=.. 6 | eclipse.preferences.version=1 7 | gradle.user.home= 8 | java.home= 9 | jvm.arguments= 10 | offline.mode=false 11 | override.workspace.settings=false 12 | show.console.view=false 13 | show.executions.view=false 14 | -------------------------------------------------------------------------------- /http-sigv4/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding/=UTF-8 3 | -------------------------------------------------------------------------------- /http-sigv4/.settings/org.eclipse.jdt.ui.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | formatter_profile=_GoogleStyle 3 | formatter_settings_version=16 4 | org.eclipse.jdt.ui.exception.name=e 5 | org.eclipse.jdt.ui.gettersetter.use.is=true 6 | org.eclipse.jdt.ui.keywordthis=true 7 | org.eclipse.jdt.ui.overrideannotation=true 8 | org.eclipse.jdt.ui.text.custom_code_templates= 9 | -------------------------------------------------------------------------------- /http-sigv4/build.gradle: -------------------------------------------------------------------------------- 1 | 2 | description = "Http Sigv4" 3 | 4 | dependencies { 5 | api project(':http') 6 | implementation group: 'software.amazon.awssdk', name: 'http-client-spi', version: '2.29.51' 7 | api group: 'software.amazon.awssdk', name: 'auth', version: '2.29.51' 8 | } 9 | 10 | test { 11 | failFast = true 12 | useJUnitPlatform() 13 | } -------------------------------------------------------------------------------- /http-sigv4/config/checkstyle/import-control.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /http-sigv4/config/checkstyle/mysuppressions.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /http-sigv4/src/main/resources/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/http-sigv4/src/main/resources/.gitkeep -------------------------------------------------------------------------------- /http-sigv4/src/test/java/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/http-sigv4/src/test/java/.gitkeep -------------------------------------------------------------------------------- /http-sigv4/src/test/resources/empty2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/http-sigv4/src/test/resources/empty2 -------------------------------------------------------------------------------- /http/.checkstyle: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /http/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | /build/ 3 | /.gradle/ 4 | -------------------------------------------------------------------------------- /http/.settings/org.eclipse.buildship.core.prefs: -------------------------------------------------------------------------------- 1 | arguments= 2 | auto.sync=false 3 | build.scans.enabled=false 4 | connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER) 5 | connection.project.dir=.. 6 | eclipse.preferences.version=1 7 | gradle.user.home= 8 | java.home= 9 | jvm.arguments= 10 | offline.mode=false 11 | override.workspace.settings=false 12 | show.console.view=false 13 | show.executions.view=false 14 | -------------------------------------------------------------------------------- /http/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding/=UTF-8 3 | -------------------------------------------------------------------------------- /http/.settings/org.eclipse.jdt.ui.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | formatter_profile=_GoogleStyle 3 | formatter_settings_version=16 4 | org.eclipse.jdt.ui.exception.name=e 5 | org.eclipse.jdt.ui.gettersetter.use.is=true 6 | org.eclipse.jdt.ui.keywordthis=true 7 | org.eclipse.jdt.ui.overrideannotation=true 8 | org.eclipse.jdt.ui.text.custom_code_templates= 9 | -------------------------------------------------------------------------------- /http/build.gradle: -------------------------------------------------------------------------------- 1 | 2 | description = "Http" 3 | 4 | dependencies { 5 | implementation group: 'com.google.code.gson', name: 'gson', version: '2.11.0' 6 | } 7 | 8 | test { 9 | failFast = true 10 | useJUnitPlatform() 11 | } -------------------------------------------------------------------------------- /http/config/checkstyle/import-control.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /http/config/checkstyle/mysuppressions.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /http/src/main/resources/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/http/src/main/resources/.gitkeep -------------------------------------------------------------------------------- /http/src/test/java/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/http/src/test/java/.gitkeep -------------------------------------------------------------------------------- /http/src/test/resources/empty2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/http/src/test/resources/empty2 -------------------------------------------------------------------------------- /images/formkiq-console.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/images/formkiq-console.png -------------------------------------------------------------------------------- /images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/images/logo.png -------------------------------------------------------------------------------- /install-play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/install-play.png -------------------------------------------------------------------------------- /lambda-api-graalvm/.checkstyle: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /lambda-api-graalvm/.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | bin 3 | build 4 | -------------------------------------------------------------------------------- /lambda-api-graalvm/config/checkstyle/mysuppressions.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /lambda-api-graalvm/runtime/bootstrap: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -euo pipefail 3 | ./server 4 | -------------------------------------------------------------------------------- /lambda-api-graalvm/src/main/java/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/lambda-api-graalvm/src/main/java/.gitkeep -------------------------------------------------------------------------------- /lambda-api-graalvm/src/main/resources/cloudformation/api-auth.yaml: -------------------------------------------------------------------------------- 1 | #@ load("@ytt:data", "data") 2 | #@ load("@ytt:assert", "assert") 3 | --- 4 | AWSTemplateFormatVersion: '2010-09-09' 5 | Transform: AWS::Serverless-2016-10-31 6 | Description: FormKiQ HTTP API 7 | 8 | Parameters: 9 | 10 | AppEnvironment: 11 | Type: String 12 | AllowedPattern: ".+" 13 | Description: The FormKiQ Environment 14 | 15 | DocumentsApiRequestsArn: 16 | Description: Lambda to invoke 17 | Type: String 18 | 19 | CognitoUserPool: 20 | Type: String 21 | Description: The Cognito User Pool Id 22 | 23 | CognitoUserPoolClient: 24 | Type: String 25 | Description: The Cognito User Pool Client Id 26 | 27 | Resources: 28 | 29 | AuthApi: 30 | Type: AWS::ApiGatewayV2::Api 31 | Properties: 32 | FailOnWarnings: "true" 33 | 34 | Outputs: 35 | AuthApi: 36 | Description: HTTP API 37 | Value: 38 | Ref: AuthApi 39 | AuthApiUrl: 40 | Description: "The endpoint url for the HTTP API" 41 | Value: 42 | Fn::Sub: "https://${AuthApi}.execute-api.${AWS::Region}.amazonaws.com" 43 | -------------------------------------------------------------------------------- /lambda-api-graalvm/src/main/resources/cloudformation/api-iam.yaml: -------------------------------------------------------------------------------- 1 | #@ load("@ytt:data", "data") 2 | #@ load("@ytt:assert", "assert") 3 | --- 4 | AWSTemplateFormatVersion: '2010-09-09' 5 | Transform: AWS::Serverless-2016-10-31 6 | Description: FormKiQ IAM API 7 | 8 | Parameters: 9 | 10 | AppEnvironment: 11 | Type: String 12 | AllowedPattern: ".+" 13 | Description: The FormKiQ Environment 14 | 15 | DocumentsApiRequestsArn: 16 | Description: Lambda to invoke 17 | Type: String 18 | 19 | OcrApiRequestsArn: 20 | Description: Lambda to invoke for Object examine endpoints 21 | Type: String 22 | 23 | Resources: 24 | 25 | DocumentsIamApi: 26 | Type: AWS::ApiGatewayV2::Api 27 | Properties: 28 | FailOnWarnings: "true" 29 | 30 | Outputs: 31 | DocumentsIamApi: 32 | Description: IAM API 33 | Value: 34 | Ref: DocumentsIamApi 35 | DocumentsIamApiUrl: 36 | Description: "The endpoint url for the IAM API" 37 | Value: 38 | Fn::Sub: "https://${DocumentsIamApi}.execute-api.${AWS::Region}.amazonaws.com" -------------------------------------------------------------------------------- /lambda-api-graalvm/src/main/resources/cloudformation/api.yaml: -------------------------------------------------------------------------------- 1 | #@ load("@ytt:data", "data") 2 | #@ load("@ytt:assert", "assert") 3 | --- 4 | AWSTemplateFormatVersion: '2010-09-09' 5 | Transform: AWS::Serverless-2016-10-31 6 | Description: FormKiQ HTTP API 7 | 8 | Parameters: 9 | 10 | AppEnvironment: 11 | Type: String 12 | AllowedPattern: ".+" 13 | Description: The FormKiQ Environment 14 | 15 | DocumentsApiRequestsArn: 16 | Description: Lambda to invoke 17 | Type: String 18 | 19 | OcrApiRequestsArn: 20 | Description: Lambda to invoke for Object examine endpoints 21 | Type: String 22 | 23 | CognitoUserPool: 24 | Type: String 25 | Description: The Cognito User Pool Id 26 | 27 | CognitoUserPoolClient: 28 | Type: String 29 | Description: The Cognito User Pool Client Id 30 | 31 | Resources: 32 | 33 | DocumentsHttpApi: 34 | Type: AWS::ApiGatewayV2::Api 35 | Properties: 36 | FailOnWarnings: "true" 37 | 38 | Outputs: 39 | DocumentsHttpApi: 40 | Description: HTTP API 41 | Value: 42 | Ref: DocumentsHttpApi 43 | DocumentsHttpApiUrl: 44 | Description: "The endpoint url for the HTTP API" 45 | Value: 46 | Fn::Sub: "https://${DocumentsHttpApi}.execute-api.${AWS::Region}.amazonaws.com" 47 | -------------------------------------------------------------------------------- /lambda-api-graalvm/src/test/java/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/lambda-api-graalvm/src/test/java/.gitkeep -------------------------------------------------------------------------------- /lambda-api-graalvm/src/test/resources/.gitkeep-lambda-api-graalvm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/lambda-api-graalvm/src/test/resources/.gitkeep-lambda-api-graalvm -------------------------------------------------------------------------------- /lambda-api/.checkstyle: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /lambda-api/.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | bin 3 | build 4 | -------------------------------------------------------------------------------- /lambda-api/.settings/org.eclipse.buildship.core.prefs: -------------------------------------------------------------------------------- 1 | connection.project.dir=.. 2 | eclipse.preferences.version=1 3 | -------------------------------------------------------------------------------- /lambda-api/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding/=UTF-8 3 | -------------------------------------------------------------------------------- /lambda-api/.settings/org.eclipse.jdt.ui.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | formatter_profile=_GoogleStyle 3 | formatter_settings_version=16 4 | org.eclipse.jdt.ui.exception.name=e 5 | org.eclipse.jdt.ui.gettersetter.use.is=true 6 | org.eclipse.jdt.ui.keywordthis=false 7 | org.eclipse.jdt.ui.overrideannotation=true 8 | -------------------------------------------------------------------------------- /lambda-api/config/checkstyle/mysuppressions.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /lambda-api/runtime/bootstrap: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -euo pipefail 3 | ./server 4 | -------------------------------------------------------------------------------- /lambda-api/src/integration/resources/form.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/lambda-api/src/integration/resources/form.pdf -------------------------------------------------------------------------------- /lambda-api/src/integration/resources/invoice.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/lambda-api/src/integration/resources/invoice.pdf -------------------------------------------------------------------------------- /lambda-api/src/integration/resources/junit-platform.properties: -------------------------------------------------------------------------------- 1 | junit.jupiter.execution.parallel.enabled = true -------------------------------------------------------------------------------- /lambda-api/src/integration/resources/multipage_example.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/lambda-api/src/integration/resources/multipage_example.pdf -------------------------------------------------------------------------------- /lambda-api/src/main/resources/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/lambda-api/src/main/resources/.gitkeep -------------------------------------------------------------------------------- /lambda-api/src/test/resources/ocr/receipt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/lambda-api/src/test/resources/ocr/receipt.png -------------------------------------------------------------------------------- /lambda-api/src/test/resources/ocr/sample.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/lambda-api/src/test/resources/ocr/sample.pdf -------------------------------------------------------------------------------- /lambda-apikey-authorizer/.checkstyle: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /lambda-apikey-authorizer/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | /build/ 3 | -------------------------------------------------------------------------------- /lambda-apikey-authorizer/.settings/org.eclipse.buildship.core.prefs: -------------------------------------------------------------------------------- 1 | arguments= 2 | auto.sync=false 3 | build.scans.enabled=false 4 | connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER) 5 | connection.project.dir=.. 6 | eclipse.preferences.version=1 7 | gradle.user.home= 8 | java.home= 9 | jvm.arguments= 10 | offline.mode=false 11 | override.workspace.settings=false 12 | show.console.view=false 13 | show.executions.view=false 14 | -------------------------------------------------------------------------------- /lambda-apikey-authorizer/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding/=UTF-8 3 | -------------------------------------------------------------------------------- /lambda-apikey-authorizer/.settings/org.eclipse.jdt.ui.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | formatter_profile=_GoogleStyle 3 | formatter_settings_version=16 4 | org.eclipse.jdt.ui.exception.name=e 5 | org.eclipse.jdt.ui.gettersetter.use.is=true 6 | org.eclipse.jdt.ui.keywordthis=true 7 | org.eclipse.jdt.ui.overrideannotation=true 8 | org.eclipse.jdt.ui.text.custom_code_templates= 9 | -------------------------------------------------------------------------------- /lambda-apikey-authorizer/config/checkstyle/import-control.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /lambda-apikey-authorizer/config/checkstyle/mysuppressions.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /lambda-apikey-authorizer/runtime/bootstrap: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -euo pipefail 3 | ./server 4 | -------------------------------------------------------------------------------- /lambda-ocr-tesseract/.checkstyle: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /lambda-ocr-tesseract/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | /build/ 3 | -------------------------------------------------------------------------------- /lambda-ocr-tesseract/.settings/org.eclipse.buildship.core.prefs: -------------------------------------------------------------------------------- 1 | arguments= 2 | auto.sync=false 3 | build.scans.enabled=false 4 | connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER) 5 | connection.project.dir=.. 6 | eclipse.preferences.version=1 7 | gradle.user.home= 8 | java.home= 9 | jvm.arguments= 10 | offline.mode=false 11 | override.workspace.settings=false 12 | show.console.view=false 13 | show.executions.view=false 14 | -------------------------------------------------------------------------------- /lambda-ocr-tesseract/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding/=UTF-8 3 | -------------------------------------------------------------------------------- /lambda-ocr-tesseract/.settings/org.eclipse.jdt.ui.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | formatter_profile=_GoogleStyle 3 | formatter_settings_version=16 4 | org.eclipse.jdt.ui.exception.name=e 5 | org.eclipse.jdt.ui.gettersetter.use.is=true 6 | org.eclipse.jdt.ui.keywordthis=true 7 | org.eclipse.jdt.ui.overrideannotation=true 8 | org.eclipse.jdt.ui.text.custom_code_templates= 9 | -------------------------------------------------------------------------------- /lambda-ocr-tesseract/config/checkstyle/mysuppressions.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /lambda-ocr-tesseract/src/test/resources/collection.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/lambda-ocr-tesseract/src/test/resources/collection.pdf -------------------------------------------------------------------------------- /lambda-ocr-tesseract/src/test/resources/file-sample_100kB.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/lambda-ocr-tesseract/src/test/resources/file-sample_100kB.doc -------------------------------------------------------------------------------- /lambda-ocr-tesseract/src/test/resources/file-sample_100kB.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/lambda-ocr-tesseract/src/test/resources/file-sample_100kB.docx -------------------------------------------------------------------------------- /lambda-ocr-tesseract/src/test/resources/form.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/lambda-ocr-tesseract/src/test/resources/form.pdf -------------------------------------------------------------------------------- /lambda-ocr-tesseract/src/test/resources/multipage_example.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/lambda-ocr-tesseract/src/test/resources/multipage_example.pdf -------------------------------------------------------------------------------- /lambda-ocr-tesseract/src/test/resources/multipage_example.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/lambda-ocr-tesseract/src/test/resources/multipage_example.tif -------------------------------------------------------------------------------- /lambda-ocr-tesseract/src/test/resources/sample.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/lambda-ocr-tesseract/src/test/resources/sample.pdf -------------------------------------------------------------------------------- /lambda-s3-graalvm/.checkstyle: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /lambda-s3-graalvm/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | /build/ 3 | -------------------------------------------------------------------------------- /lambda-s3-graalvm/config/checkstyle/import-control.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /lambda-s3-graalvm/config/checkstyle/mysuppressions.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /lambda-s3-graalvm/runtime/bootstrap: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -euo pipefail 3 | ./server 4 | -------------------------------------------------------------------------------- /lambda-s3-graalvm/src/main/java/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/lambda-s3-graalvm/src/main/java/.gitkeep -------------------------------------------------------------------------------- /lambda-s3-graalvm/src/test/java/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/lambda-s3-graalvm/src/test/java/.gitkeep -------------------------------------------------------------------------------- /lambda-s3-graalvm/src/test/resources/.gitkeep-lambda-s3-graalvm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/lambda-s3-graalvm/src/test/resources/.gitkeep-lambda-s3-graalvm -------------------------------------------------------------------------------- /lambda-s3/.checkstyle: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /lambda-s3/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | /build/ 3 | -------------------------------------------------------------------------------- /lambda-s3/.settings/org.eclipse.buildship.core.prefs: -------------------------------------------------------------------------------- 1 | connection.project.dir=.. 2 | eclipse.preferences.version=1 3 | -------------------------------------------------------------------------------- /lambda-s3/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding/=UTF-8 3 | -------------------------------------------------------------------------------- /lambda-s3/.settings/org.eclipse.jdt.ui.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | formatter_profile=_GoogleStyle 3 | formatter_settings_version=16 4 | org.eclipse.jdt.ui.exception.name=e 5 | org.eclipse.jdt.ui.gettersetter.use.is=true 6 | org.eclipse.jdt.ui.keywordthis=true 7 | org.eclipse.jdt.ui.overrideannotation=true 8 | org.eclipse.jdt.ui.text.custom_code_templates= 9 | -------------------------------------------------------------------------------- /lambda-s3/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM public.ecr.aws/lambda/provided 2 | 3 | COPY ./runtime/bootstrap /var/runtime/ 4 | COPY ./build/graalvm/server /var/task/ 5 | 6 | # Set the CMD to your handler (could also be done as a parameter override outside of the Dockerfile) 7 | #CMD [ "com.formkiq.stacks.lambda.s3.StagingS3Create" ] 8 | #CMD [ "com.formkiq.stacks.lambda.s3.DocumentsS3Update" ] 9 | -------------------------------------------------------------------------------- /lambda-s3/config/checkstyle/mysuppressions.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /lambda-s3/runtime/bootstrap: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -euo pipefail 3 | ./server 4 | -------------------------------------------------------------------------------- /lambda-s3/src/main/resources/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/lambda-s3/src/main/resources/.gitkeep -------------------------------------------------------------------------------- /lambda-s3/src/test/resources/chatgpt/response1.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "chatcmpl-8LwgeVk8glvGvaDqo9ZrMK5Mdd2j4", 3 | "object": "chat.completion", 4 | "created": 1700241172, 5 | "model": "gpt-3.5-turbo-0613", 6 | "choices": [ 7 | { 8 | "index": 0, 9 | "message": { 10 | "role": "assistant", 11 | "content": null, 12 | "function_call": { 13 | "name": "get_text_data", 14 | "arguments": "{\n \"Organization\": [\"Great Auk Enterprises\"],\n \"Location\": [\"YellowBelly Brewery Pub, St. Johns, NL\"],\n \"Person\": [\"Thomas Bewick\", \"Ketill Ketilsson\", \"Farley Mowat\", \"Aaron Thomas\"],\n \"Subject\": [\"MINUTES OF A MEETING OF DIRECTORS\"],\n \"Sentiment\": []\n,\n \"Document Type\": [\"Memorandum\"]\n}" 15 | } 16 | }, 17 | "finish_reason": "stop" 18 | } 19 | ], 20 | "usage": { 21 | "prompt_tokens": 306, 22 | "completion_tokens": 47, 23 | "total_tokens": 353 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /lambda-s3/src/test/resources/chatgpt/response2.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "chatcmpl-8LwgeVk8glvGvaDqo9ZrMK5Mdd2j4", 3 | "object": "chat.completion", 4 | "created": 1700241172, 5 | "model": "gpt-3.5-turbo-0613", 6 | "choices": [ 7 | { 8 | "index": 0, 9 | "message": { 10 | "role": "assistant", 11 | "content": null, 12 | "function_call": { 13 | "name": "get_text_data", 14 | "arguments": "{\n \"Organization\": [\"East Repair Inc.\"],\n \"Location\": [\"New York, NY 12240; Cambutdigo, MA 12210\"],\n \"Person\": [\"Job Smith\"],\n \"Subject\": [\"Receipt\"],\n \"Sentiment\": [\"None\"]\n,\n \"Document Type\": [\"Receipt\"]\n}" 15 | } 16 | }, 17 | "finish_reason": "stop" 18 | } 19 | ], 20 | "usage": { 21 | "prompt_tokens": 306, 22 | "completion_tokens": 47, 23 | "total_tokens": 353 24 | } 25 | } -------------------------------------------------------------------------------- /lambda-s3/src/test/resources/chatgpt/response3.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "chatcmpl-8LwgeVk8glvGvaDqo9ZrMK5Mdd2j4", 3 | "object": "chat.completion", 4 | "created": 1700241172, 5 | "model": "gpt-3.5-turbo-0613", 6 | "choices": [ 7 | { 8 | "index": 0, 9 | "message": { 10 | "role": "assistant", 11 | "content": null, 12 | "function_call": { 13 | "name": "get_text_data", 14 | "arguments": "{\n \"organization\": [\"East Repair Inc.\"],\n \"location\": [\"New York, NY 12240\", \"Cambutdigo, MA 12210\"],\n \"person\": [\"Job Smith\"],\n \"subject\": [\"Frontend eaar brake cabies\", \"New set of podal arms\", \"Labor shrs 500\"],\n \"sentiment\": null\n,\n \"document type\": [\"Receipt\"]\n}" 15 | } 16 | }, 17 | "finish_reason": "stop" 18 | } 19 | ], 20 | "usage": { 21 | "prompt_tokens": 306, 22 | "completion_tokens": 47, 23 | "total_tokens": 353 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /lambda-s3/src/test/resources/chatgpt/response4.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "chatcmpl-8LwgeVk8glvGvaDqo9ZrMK5Mdd2j4", 3 | "object": "chat.completion", 4 | "created": 1700241172, 5 | "model": "gpt-3.5-turbo-0613", 6 | "choices": [ 7 | { 8 | "index": 0, 9 | "message": { 10 | "role": "assistant", 11 | "content": null, 12 | "function_call": { 13 | "name": "get_text_data", 14 | "arguments": "{\n \"Organization\": [\"'Great Auk Enterprises'\"],\n \"Location\": [\"YellowBelly Brewery Pub, St. Johns, NL\"],\n \"Person\": [\"Thomas Bewick\", \"Ketill Ketilsson\", \"Farley Mowat\", \"Aaron Thomas\"],\n \"Subject\": [\"MINUTES OF A MEETING OF DIRECTORS\"],\n \"Sentiment\": []\n,\n \"Document_Type\": [\"Memorandum\"]\n}" 15 | } 16 | }, 17 | "finish_reason": "stop" 18 | } 19 | ], 20 | "usage": { 21 | "prompt_tokens": 306, 22 | "completion_tokens": 47, 23 | "total_tokens": 353 24 | } 25 | } -------------------------------------------------------------------------------- /lambda-s3/src/test/resources/chatgpt/response5.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "chatcmpl-8LwgeVk8glvGvaDqo9ZrMK5Mdd2j4", 3 | "object": "chat.completion", 4 | "created": 1700241172, 5 | "model": "gpt-3.5-turbo-0613", 6 | "choices": [ 7 | { 8 | "index": 0, 9 | "message": { 10 | "role": "assistant", 11 | "content": null, 12 | "function_call": { 13 | "name": "get_text_data", 14 | "arguments": "{\n \"board\": [\"'Thomas Bewick'\", \"'Ketill Ketilsson'\", \"'Farley Mowat.'\"],\n \"document type\": [\"Minutes of the Director's Meeting\"],\n \"meeting date\": [\"21st day of April, 2023\"],\n \"chairperson\": [\"Thomas Bewick\"],\n \"secretary\": [\"Aaron Thomas\"]\n,\n \"board members\": [\"Thomas Bewick\",\"Ketill Ketilsson\",\"Farley Mowat\"],\"resolutions\":[\"Thomas Bewick\"]\n}" 15 | } 16 | }, 17 | "finish_reason": "stop" 18 | } 19 | ], 20 | "usage": { 21 | "prompt_tokens": 306, 22 | "completion_tokens": 47, 23 | "total_tokens": 353 24 | } 25 | } -------------------------------------------------------------------------------- /lambda-s3/src/test/resources/chatgpt/response6.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "chatcmpl-8LwgeVk8glvGvaDqo9ZrMK5Mdd2j4", 3 | "object": "chat.completion", 4 | "created": 1700241172, 5 | "model": "gpt-3.5-turbo-0613", 6 | "choices": [ 7 | { 8 | "index": 0, 9 | "message": { 10 | "role": "assistant", 11 | "content": null, 12 | "function_call": { 13 | "name": "get_text_data", 14 | "arguments": "{\n \"organization\": [\"East Repair Inc.\"],\n \"location\": [\"New York, NY\",\"Cambutdigo, MA\"],\n \"person\": [\"Job Smith\"],\n \"subject\": [\"Receipt\",\"Frontend eaar brake cabies\",\"New set of podal arms\",\"Labor shrs\"],\n \"sentiment\": []\n,\n \"document type\": []\n}" 15 | } 16 | }, 17 | "finish_reason": "stop" 18 | } 19 | ], 20 | "usage": { 21 | "prompt_tokens": 306, 22 | "completion_tokens": 47, 23 | "total_tokens": 353 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /lambda-s3/src/test/resources/compression-request-file.json: -------------------------------------------------------------------------------- 1 | { 2 | "documentIds": [ 3 | "56dbfd71-bdd4-4fa8-96ca-4cf69fe93cb8", 4 | "6e775220-ff21-4bb0-a9e5-4d5f383c8881", 5 | "758d5107-e50f-4c62-b9b9-fd0347aa242b", 6 | "b37c138e-9782-40da-8e22-23412fc75035" 7 | ], 8 | "compressionId": "665f0228-4fbc-4511-912b-6cb6f566e1c0", 9 | "downloadUrl": "", 10 | "siteId": "default" 11 | } 12 | -------------------------------------------------------------------------------- /lambda-s3/src/test/resources/document.fkb64: -------------------------------------------------------------------------------- 1 | { 2 | "content": "VGhpcyBpcyBzb21lIGNvbnRlbnQ=", 3 | "contentType": "application/pdf", 4 | "userId": "111111111", 5 | "tags": [ 6 | { 7 | "key": "securityLevel", 8 | "value": "secret" 9 | }, 10 | { 11 | "key": "auditStatus", 12 | "value": "pending" 13 | } 14 | ] 15 | } -------------------------------------------------------------------------------- /lambda-s3/src/test/resources/document_multiple.fkb64: -------------------------------------------------------------------------------- 1 | { 2 | "documentId": "0d1a788d-9a70-418a-8c33-a9ee9c1a0173", 3 | "tags": [ 4 | { 5 | "key": "formName", 6 | "value": "Job Application Form" 7 | } 8 | ], 9 | "documents": [ 10 | { 11 | "documentId": "24af57ca-f61d-4ff8-b8a0-d7666073560e", 12 | "tags": [ 13 | { 14 | "key": "formData" 15 | } 16 | ], 17 | "isBase64": false, 18 | "path": "resumemetadata", 19 | "contentType": "application/json", 20 | "content": "{\"firstName\": \"Jan\",\"lastName\": \"Doe\",\"email\": \"me@mycompany.com\",\"attachmentFields\": [\"resume\",\"coverLetter\"]}" 21 | }, 22 | { 23 | "documentId": "f2416702-6b3c-4d29-a217-82a43b16b964", 24 | "path": "resume", 25 | "tags": [ 26 | { 27 | "key": "attachmentField", 28 | "value": "resume" 29 | }, 30 | { 31 | "key":"category" 32 | } 33 | ] 34 | } 35 | ] 36 | } -------------------------------------------------------------------------------- /lambda-s3/src/test/resources/document_no_tags.fkb64: -------------------------------------------------------------------------------- 1 | { 2 | "content": "VGhpcyBpcyBzb21lIGNvbnRlbnQ=", 3 | "contentType": "application/pdf", 4 | "userId": "111111111" 5 | } -------------------------------------------------------------------------------- /lambda-s3/src/test/resources/document_patch.fkb64: -------------------------------------------------------------------------------- 1 | { "documentId": "e75f8962-d03f-40af-92f1-f7d8eb7dd143", "path": "/documents/test2.txt" } -------------------------------------------------------------------------------- /lambda-s3/src/test/resources/document_with_uuid.fkb64: -------------------------------------------------------------------------------- 1 | { 2 | "content": "VGhpcyBpcyBzb21lIGNvbnRlbnQ=", 3 | "contentType": "application/pdf", 4 | "documentId" : "bc0950fe-b4b1-494a-a0ba-d711737d6d7c", 5 | "userId": "111111111", 6 | "path": "/mydocs/forms/thisthing.pdf", 7 | "tags": [ 8 | { 9 | "key": "securityLevel", 10 | "value": "secret" 11 | }, 12 | { 13 | "key": "auditStatus", 14 | "value": "pending" 15 | } 16 | ] 17 | } -------------------------------------------------------------------------------- /lambda-s3/src/test/resources/documents-compress-event.json: -------------------------------------------------------------------------------- 1 | { 2 | "Records": [ 3 | { 4 | "eventVersion": "2.0", 5 | "eventSource": "aws:s3", 6 | "awsRegion": "us-east-1", 7 | "eventTime": "1970-01-01T00:00:00.000Z", 8 | "eventName": "ObjectCreated:Put", 9 | "userIdentity": { 10 | "principalId": "EXAMPLE" 11 | }, 12 | "requestParameters": { 13 | "sourceIPAddress": "127.0.0.1" 14 | }, 15 | "responseElements": { 16 | "x-amz-request-id": "EXAMPLE123456789", 17 | "x-amz-id-2": "EXAMPLE123/5678abcdefghijklambdaisawesome/mnopqrstuvwxyzABCDEFGH" 18 | }, 19 | "s3": { 20 | "s3SchemaVersion": "1.0", 21 | "configurationId": "testConfigRule", 22 | "bucket": { 23 | "name": "example-bucket", 24 | "ownerIdentity": { 25 | "principalId": "EXAMPLE" 26 | }, 27 | "arn": "arn:aws:s3:::example-bucket" 28 | }, 29 | "object": { 30 | "key": "tempfiles/665f0228-4fbc-4511-912b-6cb6f566e1c0.json", 31 | "size": 1024, 32 | "eTag": "0123456789abcdef0123456789abcdef", 33 | "sequencer": "0A1B2C3D4E5F678901" 34 | } 35 | } 36 | } 37 | ] 38 | } 39 | -------------------------------------------------------------------------------- /lambda-s3/src/test/resources/objectcreate-event1.json: -------------------------------------------------------------------------------- 1 | { 2 | "Records": [ 3 | { 4 | "eventVersion": "2.0", 5 | "eventSource": "aws:s3", 6 | "awsRegion": "us-east-1", 7 | "eventTime": "1970-01-01T00:00:00.000Z", 8 | "eventName": "ObjectCreated:Put", 9 | "userIdentity": { 10 | "principalId": "EXAMPLE" 11 | }, 12 | "requestParameters": { 13 | "sourceIPAddress": "127.0.0.1" 14 | }, 15 | "responseElements": { 16 | "x-amz-request-id": "EXAMPLE123456789", 17 | "x-amz-id-2": "EXAMPLE123/5678abcdefghijklambdaisawesome/mnopqrstuvwxyzABCDEFGH" 18 | }, 19 | "s3": { 20 | "s3SchemaVersion": "1.0", 21 | "configurationId": "testConfigRule", 22 | "bucket": { 23 | "name": "example-bucket", 24 | "ownerIdentity": { 25 | "principalId": "EXAMPLE" 26 | }, 27 | "arn": "arn:aws:s3:::example-bucket" 28 | }, 29 | "object": { 30 | "key": "b53c92cf-f7b9-4787-9541-76574ec70d71", 31 | "size": 1024, 32 | "eTag": "0123456789abcdef0123456789abcdef", 33 | "sequencer": "0A1B2C3D4E5F678901" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /lambda-s3/src/test/resources/objectcreate-event2.json: -------------------------------------------------------------------------------- 1 | { 2 | "Records": [ 3 | { 4 | "eventVersion": "2.0", 5 | "eventSource": "aws:s3", 6 | "awsRegion": "us-east-1", 7 | "eventTime": "1970-01-01T00:00:00.000Z", 8 | "eventName": "ObjectCreated:Put", 9 | "userIdentity": { 10 | "principalId": "EXAMPLE" 11 | }, 12 | "requestParameters": { 13 | "sourceIPAddress": "127.0.0.1" 14 | }, 15 | "responseElements": { 16 | "x-amz-request-id": "EXAMPLE123456789", 17 | "x-amz-id-2": "EXAMPLE123/5678abcdefghijklambdaisawesome/mnopqrstuvwxyzABCDEFGH" 18 | }, 19 | "s3": { 20 | "s3SchemaVersion": "1.0", 21 | "configurationId": "testConfigRule", 22 | "bucket": { 23 | "name": "example-bucket", 24 | "ownerIdentity": { 25 | "principalId": "EXAMPLE" 26 | }, 27 | "arn": "arn:aws:s3:::example-bucket" 28 | }, 29 | "object": { 30 | "key": "test.txt", 31 | "size": 1024, 32 | "eTag": "0123456789abcdef0123456789abcdef", 33 | "sequencer": "0A1B2C3D4E5F678901" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /lambda-s3/src/test/resources/objectcreate-event3.json: -------------------------------------------------------------------------------- 1 | { 2 | "Records": [ 3 | { 4 | "eventVersion": "2.0", 5 | "eventSource": "aws:s3", 6 | "awsRegion": "us-east-1", 7 | "eventTime": "1970-01-01T00:00:00.000Z", 8 | "eventName": "ObjectCreated:Put", 9 | "userIdentity": { 10 | "principalId": "EXAMPLE" 11 | }, 12 | "requestParameters": { 13 | "sourceIPAddress": "127.0.0.1" 14 | }, 15 | "responseElements": { 16 | "x-amz-request-id": "EXAMPLE123456789", 17 | "x-amz-id-2": "EXAMPLE123/5678abcdefghijklambdaisawesome/mnopqrstuvwxyzABCDEFGH" 18 | }, 19 | "s3": { 20 | "s3SchemaVersion": "1.0", 21 | "configurationId": "testConfigRule", 22 | "bucket": { 23 | "name": "example-bucket", 24 | "ownerIdentity": { 25 | "principalId": "EXAMPLE" 26 | }, 27 | "arn": "arn:aws:s3:::example-bucket" 28 | }, 29 | "object": { 30 | "key": "document.fkb64", 31 | "size": 1024, 32 | "eTag": "0123456789abcdef0123456789abcdef", 33 | "sequencer": "0A1B2C3D4E5F678901" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /lambda-s3/src/test/resources/objectremove-event1-siteid.json: -------------------------------------------------------------------------------- 1 | { 2 | "Records": [ 3 | { 4 | "eventVersion": "2.0", 5 | "eventSource": "aws:s3", 6 | "awsRegion": "us-east-1", 7 | "eventTime": "1970-01-01T00:00:00.000Z", 8 | "eventName": "ObjectRemoved:Delete", 9 | "userIdentity": { 10 | "principalId": "EXAMPLE" 11 | }, 12 | "requestParameters": { 13 | "sourceIPAddress": "127.0.0.1" 14 | }, 15 | "responseElements": { 16 | "x-amz-request-id": "EXAMPLE123456789", 17 | "x-amz-id-2": "EXAMPLE123/5678abcdefghijklambdaisawesome/mnopqrstuvwxyzABCDEFGH" 18 | }, 19 | "s3": { 20 | "s3SchemaVersion": "1.0", 21 | "configurationId": "testConfigRule", 22 | "bucket": { 23 | "name": "example-bucket", 24 | "ownerIdentity": { 25 | "principalId": "EXAMPLE" 26 | }, 27 | "arn": "arn:aws:s3:::documentsbucket" 28 | }, 29 | "object": { 30 | "key": "test/b53c92cf-f7b9-4787-9541-76574ec70d71", 31 | "size": 1024, 32 | "eTag": "0123456789abcdef0123456789abcdef", 33 | "sequencer": "0A1B2C3D4E5F678901" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /lambda-s3/src/test/resources/objectremove-event1.json: -------------------------------------------------------------------------------- 1 | { 2 | "Records": [ 3 | { 4 | "eventVersion": "2.0", 5 | "eventSource": "aws:s3", 6 | "awsRegion": "us-east-1", 7 | "eventTime": "1970-01-01T00:00:00.000Z", 8 | "eventName": "ObjectRemoved:Delete", 9 | "userIdentity": { 10 | "principalId": "EXAMPLE" 11 | }, 12 | "requestParameters": { 13 | "sourceIPAddress": "127.0.0.1" 14 | }, 15 | "responseElements": { 16 | "x-amz-request-id": "EXAMPLE123456789", 17 | "x-amz-id-2": "EXAMPLE123/5678abcdefghijklambdaisawesome/mnopqrstuvwxyzABCDEFGH" 18 | }, 19 | "s3": { 20 | "s3SchemaVersion": "1.0", 21 | "configurationId": "testConfigRule", 22 | "bucket": { 23 | "name": "example-bucket", 24 | "ownerIdentity": { 25 | "principalId": "EXAMPLE" 26 | }, 27 | "arn": "arn:aws:s3:::documentsbucket" 28 | }, 29 | "object": { 30 | "key": "b53c92cf-f7b9-4787-9541-76574ec70d71", 31 | "size": 1024, 32 | "eTag": "0123456789abcdef0123456789abcdef", 33 | "sequencer": "0A1B2C3D4E5F678901" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /lambda-s3/src/test/resources/objectunknown-event1.json: -------------------------------------------------------------------------------- 1 | { 2 | "Records": [ 3 | { 4 | "eventVersion": "2.0", 5 | "eventSource": "aws:s3", 6 | "awsRegion": "us-east-1", 7 | "eventTime": "1970-01-01T00:00:00.000Z", 8 | "eventName": "ObjectUnknwn:Delete", 9 | "userIdentity": { 10 | "principalId": "EXAMPLE" 11 | }, 12 | "requestParameters": { 13 | "sourceIPAddress": "127.0.0.1" 14 | }, 15 | "responseElements": { 16 | "x-amz-request-id": "EXAMPLE123456789", 17 | "x-amz-id-2": "EXAMPLE123/5678abcdefghijklambdaisawesome/mnopqrstuvwxyzABCDEFGH" 18 | }, 19 | "s3": { 20 | "s3SchemaVersion": "1.0", 21 | "configurationId": "testConfigRule", 22 | "bucket": { 23 | "name": "example-bucket", 24 | "ownerIdentity": { 25 | "principalId": "EXAMPLE" 26 | }, 27 | "arn": "arn:aws:s3:::example-bucket" 28 | }, 29 | "object": { 30 | "key": "b53c92cf-f7b9-4787-9541-76574ec70d71", 31 | "size": 1024, 32 | "eTag": "0123456789abcdef0123456789abcdef", 33 | "sequencer": "0A1B2C3D4E5F678901" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /lambda-s3/src/test/resources/temp-files-zip-created-event.json: -------------------------------------------------------------------------------- 1 | { 2 | "Records": [ 3 | { 4 | "eventVersion": "2.0", 5 | "eventSource": "aws:s3", 6 | "awsRegion": "us-east-1", 7 | "eventTime": "1970-01-01T00:00:00.000Z", 8 | "eventName": "ObjectCreated:Put", 9 | "userIdentity": { 10 | "principalId": "EXAMPLE" 11 | }, 12 | "requestParameters": { 13 | "sourceIPAddress": "127.0.0.1" 14 | }, 15 | "responseElements": { 16 | "x-amz-request-id": "EXAMPLE123456789", 17 | "x-amz-id-2": "EXAMPLE123/5678abcdefghijklambdaisawesome/mnopqrstuvwxyzABCDEFGH" 18 | }, 19 | "s3": { 20 | "s3SchemaVersion": "1.0", 21 | "configurationId": "testConfigRule", 22 | "bucket": { 23 | "name": "example-bucket", 24 | "ownerIdentity": { 25 | "principalId": "EXAMPLE" 26 | }, 27 | "arn": "arn:aws:s3:::example-bucket" 28 | }, 29 | "object": { 30 | "key": "tempfiles/665f0228-4fbc-4511-912b-6cb6f566e1c0.zip", 31 | "size": 1024, 32 | "eTag": "0123456789abcdef0123456789abcdef", 33 | "sequencer": "0A1B2C3D4E5F678901" 34 | } 35 | } 36 | } 37 | ] 38 | } 39 | -------------------------------------------------------------------------------- /lambda-s3/src/test/resources/text/text01.txt: -------------------------------------------------------------------------------- 1 | FormKiQ CORPORATION CHARGE SALES INVOICE R 566 MAIN ST. BRGY 599 ZONE 54, CALGARY, CANADA No. 8260 TELEFAX. NO.: 8255-8622; 8569-4249 sales@formkiq.com VAT Reg.TI 010-484-797-00000 DATE: 03.15.24 SOLD TO: SOUTHEASTASIA RETAIL P.O. NO.: 6200041751 INC. TERMS: UNIT 605 AYALA FEU CENTER CEBU BUSINESS R.C. NO.: DATE: PARK CEBU CITY ISSUED AT: BUSINESS STYLE: T.I.N.: 108-123-592 -00016 DELIVER TO / SPECIAL INSTRUCTIONS: CHARGE TO: 2030 LANDERS ARCA BUSINESS STYLE: QTY UNIT DESCRIPTION UNIT PRICE AMOUNT I PIECE DOCUMENT FILE 3" A4 BLUE 2 RING 65.00 65.00 840 PIECE MBW 2000 BALLPEN BLACK 4.00 3.360.00 60 PIECE HBW 2000 BALLPEN BLUE 4.00 240.00 365 PIECE HBN 2000 BALLPEN RED 4.00 1,440.00 -130 PIECE TITUS BALLPEN VIOLET 6.50 845.00 3 BOX GOLD CARBON PAPER MORT BLUE 410.00 1,230.00 3 BOX VPIRAL CLEAR BOOK 27 HOLES LONG BLUE 30.00 90.00 12 DOZEN DOUBLE CLIP 1' 16.00 192.00 15 DOZEN DOUBLE CLIP -------------------------------------------------------------------------------- /lambda-typesense/.checkstyle: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /lambda-typesense/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | /build/ 3 | -------------------------------------------------------------------------------- /lambda-typesense/.settings/org.eclipse.buildship.core.prefs: -------------------------------------------------------------------------------- 1 | arguments= 2 | auto.sync=false 3 | build.scans.enabled=false 4 | connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER) 5 | connection.project.dir=.. 6 | eclipse.preferences.version=1 7 | gradle.user.home= 8 | java.home= 9 | jvm.arguments= 10 | offline.mode=false 11 | override.workspace.settings=false 12 | show.console.view=false 13 | show.executions.view=false 14 | -------------------------------------------------------------------------------- /lambda-typesense/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding/=UTF-8 3 | -------------------------------------------------------------------------------- /lambda-typesense/.settings/org.eclipse.jdt.ui.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | formatter_profile=_GoogleStyle 3 | formatter_settings_version=16 4 | org.eclipse.jdt.ui.exception.name=e 5 | org.eclipse.jdt.ui.gettersetter.use.is=true 6 | org.eclipse.jdt.ui.keywordthis=true 7 | org.eclipse.jdt.ui.overrideannotation=true 8 | org.eclipse.jdt.ui.text.custom_code_templates= 9 | -------------------------------------------------------------------------------- /lambda-typesense/config/checkstyle/import-control.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /lambda-typesense/config/checkstyle/mysuppressions.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /lambda-typesense/runtime/bootstrap: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -euo pipefail 3 | ./server 4 | -------------------------------------------------------------------------------- /logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/logo.png -------------------------------------------------------------------------------- /module-email-notify/.checkstyle: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /module-email-notify/.gitignore: -------------------------------------------------------------------------------- 1 | /build/ 2 | -------------------------------------------------------------------------------- /module-email-notify/.settings/org.eclipse.buildship.core.prefs: -------------------------------------------------------------------------------- 1 | connection.project.dir=.. 2 | eclipse.preferences.version=1 3 | -------------------------------------------------------------------------------- /module-email-notify/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding/=UTF-8 3 | -------------------------------------------------------------------------------- /module-email-notify/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM public.ecr.aws/lambda/nodejs:12 2 | # Alternatively, you can pull the base image from Docker Hub: amazon/aws-lambda-nodejs:12 3 | 4 | COPY src/index.js src/package.json /var/task/ 5 | 6 | # Install NPM dependencies for function 7 | RUN npm install 8 | 9 | # Set the CMD to your handler (could also be done as a parameter override outside of the Dockerfile) 10 | CMD [ "index.handler" ] -------------------------------------------------------------------------------- /module-email-notify/config/checkstyle/import-control.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /module-email-notify/config/checkstyle/mysuppressions.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /module-email-notify/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | services: 3 | localstack: 4 | image: localstack/localstack:2.1 5 | ports: 6 | - "4567:4566" 7 | environment: 8 | - SERVICES=s3,sqs,ssm,sns 9 | - DEBUG=${DEBUG- } 10 | - DATA_DIR=${DATA_DIR- } 11 | - PORT_WEB_UI=${PORT_WEB_UI- } 12 | - LAMBDA_EXECUTOR=${LAMBDA_EXECUTOR- } 13 | - KINESIS_ERROR_PROBABILITY=${KINESIS_ERROR_PROBABILITY- } 14 | - DOCKER_HOST=unix:///var/run/docker.sock 15 | 16 | -------------------------------------------------------------------------------- /module-email-notify/src/main/resources/js/index.js: -------------------------------------------------------------------------------- 1 | const AWS = require('aws-sdk'); 2 | 3 | module.exports.handler = async(event, context) => { 4 | 5 | if (process.env.DEBUG) { 6 | console.log('Received event:', JSON.stringify(event)); 7 | } 8 | 9 | var topicArn = process.env.EMAIL_TOPIC_ARN; 10 | var consoleUrl = process.env.CONSOLE_URL; 11 | 12 | var records = []; 13 | event.Records.forEach(element => { 14 | if (element.body != null) { 15 | var msg = JSON.parse(element.body); 16 | if (msg.Message != null) { 17 | try { 18 | records.push(JSON.parse(msg.Message)); 19 | } catch(err) { 20 | console.log("invalid JSON message: " + msg.Message); 21 | } 22 | } 23 | } 24 | }); 25 | 26 | var ssm = new AWS.SSM(); 27 | 28 | var params = []; 29 | records.forEach(r => { 30 | params.push({ 31 | Subject: 'A document has been created in FormKiQ', 32 | Message: 'A document has been created in FormKiq with ID ' + r.documentId 33 | + '.\n\nClick the following link ' + consoleUrl + '/documents/' + r.documentId + ' to view the document in the console.', 34 | TopicArn: topicArn 35 | }); 36 | }); 37 | 38 | let sns = new AWS.SNS({apiVersion: '2010-03-31'}); 39 | 40 | var promises = []; 41 | 42 | params.forEach(p => { 43 | promises.push(sns.publish(p).promise()); 44 | }); 45 | 46 | return Promise.all(promises); 47 | }; -------------------------------------------------------------------------------- /module-email-notify/src/main/resources/js/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "module-email-notify", 3 | "version": "1.0.0", 4 | "description": "Send Email Notification on Document Events", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "nyc --reporter=html --reporter=text mocha --check-coverage --lines 85 --per-file", 8 | "pack": "npm-pack-zip" 9 | }, 10 | "author": "", 11 | "license": "ISC", 12 | "bundledDependencies": { 13 | "aws-sdk": "^2.773.0" 14 | }, 15 | "dependencies": { 16 | "aws-sdk": "^2.773.0" 17 | }, 18 | "devDependencies": { 19 | "mocha": "^8.1.3", 20 | "npm-pack-zip": "^1.3.0", 21 | "nyc": "^15.1.0" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /module-email-notify/src/test/resources/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/module-email-notify/src/test/resources/.gitkeep -------------------------------------------------------------------------------- /netty-server/.checkstyle: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /netty-server/.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | bin 3 | build 4 | -------------------------------------------------------------------------------- /netty-server/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu/jre:17-22.04_16 2 | 3 | LABEL vendor="FormKiQ Inc" 4 | LABEL maintainer="formkiq.com" 5 | 6 | EXPOSE 8080 7 | 8 | WORKDIR /app 9 | 10 | COPY build/libs/*.jar . 11 | 12 | # ENV JAVA_TOOL_OPTIONS=-agentlib:jdwp=transport=dt_socket,server=y,address=*:8100,suspend=n 13 | ENTRYPOINT ["/opt/java/bin/java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app/netty-server.jar"] -------------------------------------------------------------------------------- /netty-server/config/checkstyle/mysuppressions.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /netty-server/docker-compose-integration-override.yml: -------------------------------------------------------------------------------- 1 | services: 2 | typesense: 3 | volumes: 4 | - typesense-data:/data 5 | 6 | api: 7 | environment: 8 | S3_PRESIGNER_URL: http://minio:9000 9 | KEYCLOAK_TOKEN_ENDPOINT: null 10 | 11 | minio: 12 | volumes: 13 | - minio-data:/data 14 | 15 | dynamodb: 16 | command: ["-jar", "DynamoDBLocal.jar", "-sharedDb", "-dbPath", "/tmp"] 17 | volumes: 18 | - dynamodb-data:/home/dynamodblocal/data 19 | 20 | keycloak: 21 | volumes: 22 | - keycloak-data:/opt/keycloak/data 23 | 24 | volumes: 25 | typesense-data: 26 | minio-data: 27 | dynamodb-data: 28 | keycloak-data: -------------------------------------------------------------------------------- /netty-server/docker-compose-override.yml: -------------------------------------------------------------------------------- 1 | services: 2 | keycloak: 3 | build: 4 | context: keycloak 5 | dockerfile: Dockerfile 6 | 7 | api: 8 | build: 9 | context: . 10 | dockerfile: Dockerfile -------------------------------------------------------------------------------- /netty-server/keycloak/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM quay.io/keycloak/keycloak:26.0.6 2 | 3 | # Set environment variables for Keycloak 4 | ENV KC_BOOTSTRAP_ADMIN_USERNAME=admin 5 | ENV KC_BOOTSTRAP_ADMIN_PASSWORD=admin 6 | 7 | # Copy the config.json file into the image 8 | COPY formkiq-realm.json /tmp/formkiq-realm.json 9 | 10 | # Expose necessary ports 11 | EXPOSE 8081 -------------------------------------------------------------------------------- /netty-server/src/main/java/com/formkiq/server/auth/Tokens.java: -------------------------------------------------------------------------------- 1 | /** 2 | * MIT License 3 | * 4 | * Copyright (c) 2018 - 2020 FormKiQ 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | */ 24 | package com.formkiq.server.auth; 25 | 26 | public record Tokens(String idToken, String accessToken, String refreshToken) { 27 | } 28 | -------------------------------------------------------------------------------- /netty-server/src/test/resources/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/netty-server/src/test/resources/.gitkeep -------------------------------------------------------------------------------- /ocr/.checkstyle: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /ocr/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | /build/ 3 | /.gradle/ 4 | -------------------------------------------------------------------------------- /ocr/.settings/org.eclipse.buildship.core.prefs: -------------------------------------------------------------------------------- 1 | arguments= 2 | auto.sync=false 3 | build.scans.enabled=false 4 | connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER) 5 | connection.project.dir=.. 6 | eclipse.preferences.version=1 7 | gradle.user.home= 8 | java.home= 9 | jvm.arguments= 10 | offline.mode=false 11 | override.workspace.settings=false 12 | show.console.view=false 13 | show.executions.view=false 14 | -------------------------------------------------------------------------------- /ocr/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding/=UTF-8 3 | -------------------------------------------------------------------------------- /ocr/.settings/org.eclipse.jdt.ui.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | formatter_profile=_GoogleStyle 3 | formatter_settings_version=16 4 | org.eclipse.jdt.ui.exception.name=e 5 | org.eclipse.jdt.ui.gettersetter.use.is=true 6 | org.eclipse.jdt.ui.keywordthis=true 7 | org.eclipse.jdt.ui.overrideannotation=true 8 | org.eclipse.jdt.ui.text.custom_code_templates= 9 | -------------------------------------------------------------------------------- /ocr/build.gradle: -------------------------------------------------------------------------------- 1 | 2 | description = "Ocr" 3 | 4 | dependencies { 5 | 6 | annotationProcessor group: 'com.formkiq', name: 'graalvm-annotations-processor', version: '1.4.2' 7 | 8 | implementation group: 'com.formkiq', name: 'graalvm-annotations', version: '1.2.0' 9 | 10 | implementation project(':actions') 11 | implementation project(':aws-dynamodb') 12 | implementation project(':dynamodb-documents') 13 | implementation project(':aws-s3') 14 | implementation project(':aws-sqs') 15 | implementation project(':fkq-lambda-services') 16 | implementation project(':fkq-lambda-core') 17 | implementation project(':fkq-plugins') 18 | implementation group: 'com.amazonaws', name: 'aws-lambda-java-core', version: '1.2.3' 19 | implementation group: 'com.google.code.gson', name: 'gson', version: '2.11.0' 20 | 21 | implementation group: 'org.apache.pdfbox', name: 'pdfbox', version: '3.0.3' 22 | 23 | testImplementation project(':fkq-test-utils') 24 | testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version:'5.11.4' 25 | testImplementation group: 'org.testcontainers', name: 'testcontainers', version: '1.20.4' 26 | testImplementation group: 'org.testcontainers', name: 'junit-jupiter', version: '1.20.4' 27 | testImplementation group: 'org.testcontainers', name: 'localstack', version: '1.20.4' 28 | } 29 | 30 | test { 31 | failFast = true 32 | useJUnitPlatform() 33 | } -------------------------------------------------------------------------------- /ocr/config/checkstyle/mysuppressions.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /ocr/src/main/java/com/formkiq/module/ocr/OcrOutputType.java: -------------------------------------------------------------------------------- 1 | /** 2 | * MIT License 3 | * 4 | * Copyright (c) 2018 - 2020 FormKiQ 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | */ 24 | package com.formkiq.module.ocr; 25 | 26 | /** 27 | * Ocr Output Type. 28 | */ 29 | public enum OcrOutputType { 30 | /** CSV Output Format. */ 31 | CSV 32 | } 33 | -------------------------------------------------------------------------------- /ocr/src/test/resources/portfolio.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/ocr/src/test/resources/portfolio.pdf -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | /* 2 | pluginManagement { 3 | includeBuild '../graalvm-native-plugin' 4 | }*/ 5 | 6 | rootProject.name = 'formkiq-core' 7 | 8 | include 'console' 9 | include 'aws-cognito-identity' 10 | include 'aws-cognito-identityprovider' 11 | include 'aws-iam' 12 | include 'aws-lambda' 13 | include 'aws-s3' 14 | include 'aws-xray' 15 | include 'aws-sqs' 16 | include 'aws-sns' 17 | include 'aws-sts' 18 | include 'aws-ssm' 19 | include 'aws-ses' 20 | include 'aws-eventbridge' 21 | include 'dynamodb-documents' 22 | include 'lambda-api' 23 | include 'lambda-api-graalvm' 24 | include 'lambda-s3' 25 | include 'lambda-s3-graalvm' 26 | include 'lambda-typesense' 27 | include 'module-email-notify' 28 | include 'websocket-api' 29 | include 'fkq-lambda-core' 30 | include 'fkq-test-utils' 31 | include 'aws-dynamodb' 32 | include 'fkq-plugins' 33 | include 'actions' 34 | include 'typesense' 35 | include 'http' 36 | include 'http-sigv4' 37 | include 'document-events' 38 | include 'fkq-lambda-services' 39 | include 'fkq-validation' 40 | include 'lambda-ocr-tesseract' 41 | include 'ocr' 42 | include 'lambda-apikey-authorizer' 43 | include 'netty-server' 44 | include 'strings' 45 | -------------------------------------------------------------------------------- /src/main/resources/cloudformation/config.yaml: -------------------------------------------------------------------------------- 1 | AWSTemplateFormatVersion: '2010-09-09' 2 | Description: FormKiQ Config 3 | 4 | Parameters: 5 | 6 | FormKiQType: 7 | Type: String 8 | Description: The formkiq type of installation 9 | AllowedPattern: ".+" 10 | 11 | FormKiQVersion: 12 | Type: String 13 | Description: The formkiq version 14 | AllowedPattern: ".+" 15 | 16 | Resources: 17 | PlaceholderResource: 18 | Type: AWS::CloudFormation::WaitConditionHandle 19 | 20 | Outputs: 21 | 22 | FormKiQType: 23 | Description: The FormKiQ type of installation 24 | Value: 25 | Ref: FormKiQType 26 | 27 | FormKiQVersion: 28 | Description: The FormKiQ version 29 | Value: 30 | Ref: FormKiQVersion 31 | -------------------------------------------------------------------------------- /src/main/resources/cloudformation/event-message.yaml: -------------------------------------------------------------------------------- 1 | AWSTemplateFormatVersion: '2010-09-09' 2 | Transform: AWS::Serverless-2016-10-31 3 | Description: FormKiQ Event Messaging 4 | 5 | Parameters: 6 | 7 | AppEnvironment: 8 | Type: String 9 | Description: Unique Application Environment Identifier, IE dev/staging/prod 10 | AllowedPattern: ".+" 11 | 12 | Resources: 13 | 14 | DocumentEventsBus: 15 | Type: AWS::Events::EventBus 16 | Properties: 17 | Name: 18 | Fn::Sub: "FormKiQ-DocumentEvents-${AppEnvironment}" 19 | Description: "The EventBridge bus used to publish FormKiQ Document Events" 20 | Tags: 21 | - Key: "Application" 22 | Value: "FormKiQ" 23 | - Key: "AppEnvironment" 24 | Value: 25 | Fn::Sub: "${AppEnvironment}" 26 | 27 | Outputs: 28 | 29 | DocumentEventsBus: 30 | Description: Name EventBridge Event Bus 31 | Value: 32 | Ref: DocumentEventsBus 33 | -------------------------------------------------------------------------------- /strings/.checkstyle: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /strings/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | /build/ 3 | /.gradle/ 4 | -------------------------------------------------------------------------------- /strings/build.gradle: -------------------------------------------------------------------------------- 1 | 2 | description = "Strings utils" 3 | 4 | dependencies { 5 | testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version:'5.11.4' 6 | } 7 | 8 | test { 9 | failFast = true 10 | useJUnitPlatform() 11 | } 12 | -------------------------------------------------------------------------------- /strings/config/checkstyle/import-control.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /strings/config/checkstyle/mysuppressions.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /strings/src/main/resources/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/strings/src/main/resources/.gitkeep -------------------------------------------------------------------------------- /strings/src/test/resources/empty2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/formkiq/formkiq-core/9521e1cf471eeeed1bbaed564149d121890295a0/strings/src/test/resources/empty2 -------------------------------------------------------------------------------- /typesense/.checkstyle: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /typesense/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /typesense/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | /build/ 3 | /.gradle/ 4 | -------------------------------------------------------------------------------- /typesense/.settings/org.eclipse.buildship.core.prefs: -------------------------------------------------------------------------------- 1 | arguments= 2 | auto.sync=false 3 | build.scans.enabled=false 4 | connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER) 5 | connection.project.dir=.. 6 | eclipse.preferences.version=1 7 | gradle.user.home= 8 | java.home= 9 | jvm.arguments= 10 | offline.mode=false 11 | override.workspace.settings=false 12 | show.console.view=false 13 | show.executions.view=false 14 | -------------------------------------------------------------------------------- /typesense/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding/=UTF-8 3 | -------------------------------------------------------------------------------- /typesense/.settings/org.eclipse.jdt.ui.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | formatter_profile=_GoogleStyle 3 | formatter_settings_version=16 4 | org.eclipse.jdt.ui.exception.name=e 5 | org.eclipse.jdt.ui.gettersetter.use.is=true 6 | org.eclipse.jdt.ui.keywordthis=true 7 | org.eclipse.jdt.ui.overrideannotation=true 8 | org.eclipse.jdt.ui.text.custom_code_templates= 9 | -------------------------------------------------------------------------------- /typesense/build.gradle: -------------------------------------------------------------------------------- 1 | 2 | description = "Typesense" 3 | 4 | dependencies { 5 | implementation project(':http-sigv4') 6 | implementation project(':fkq-lambda-services') 7 | 8 | testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version:'5.11.4' 9 | testImplementation group: 'org.testcontainers', name: 'testcontainers', version: '1.20.4' 10 | testImplementation project(':fkq-test-utils') 11 | } 12 | 13 | test { 14 | failFast = true 15 | useJUnitPlatform() 16 | } 17 | -------------------------------------------------------------------------------- /typesense/config/checkstyle/import-control.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /typesense/config/checkstyle/mysuppressions.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /wait-for-dynamodb.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | export AWS_ACCESS_KEY_ID=none 3 | export AWS_SECRET_ACCESS_KEY=none 4 | until aws --region us-east-1 --endpoint-url=http://localhost:8000 dynamodb list-tables; do 5 | >&2 echo "DynamoDB is unavailable - sleeping" 6 | sleep 1 7 | done 8 | 9 | echo "DynamoDB is available" 10 | -------------------------------------------------------------------------------- /wait-for-localstack.sh: -------------------------------------------------------------------------------- 1 | until aws --region us-east-1 --no-sign-request --endpoint-url=http://localhost:$1 s3 ls; do 2 | >&2 echo "S3 is unavailable - sleeping" 3 | sleep 1 4 | done 5 | 6 | echo "S3 is available" 7 | -------------------------------------------------------------------------------- /websocket-api/.checkstyle: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /websocket-api/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /websocket-api/.gitignore: -------------------------------------------------------------------------------- 1 | /build/ 2 | -------------------------------------------------------------------------------- /websocket-api/.settings/org.eclipse.buildship.core.prefs: -------------------------------------------------------------------------------- 1 | connection.project.dir=.. 2 | eclipse.preferences.version=1 3 | -------------------------------------------------------------------------------- /websocket-api/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding/=UTF-8 3 | -------------------------------------------------------------------------------- /websocket-api/config/checkstyle/import-control.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /websocket-api/config/checkstyle/mysuppressions.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /websocket-api/src/main/resources/js/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "websocket-api", 3 | "version": "1.0.0", 4 | "description": "Websocket API", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "nyc --reporter=html --reporter=text mocha --check-coverage --lines 85 --per-file", 8 | "pack": "npm-pack-zip" 9 | }, 10 | "author": "", 11 | "license": "ISC", 12 | "bundledDependencies": { 13 | "aws-sdk": "^2.773.0", 14 | "@southlane/cognito-jwt-verifier": "^0.1.7" 15 | }, 16 | "dependencies": { 17 | "aws-sdk": "^2.773.0", 18 | "@southlane/cognito-jwt-verifier": "^0.1.7" 19 | }, 20 | "devDependencies": { 21 | "aws-sdk": "^2.773.0", 22 | "mocha": "^8.1.3", 23 | "npm-pack-zip": "^1.3.0", 24 | "nyc": "^15.1.0" 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /websocket-api/src/main/resources/js/test/test.js: -------------------------------------------------------------------------------- 1 | process.env.REGION = "us-east-2"; 2 | process.env.COGNITO_USER_POOL_ID = "us-east-2_o0TKlWcAb"; 3 | process.env.COGNITO_USER_POOL_CLIENT_ID = "5d7uof6ikkki0tj4t39r3mbqg4"; 4 | 5 | const AWS = require('aws-sdk'); 6 | const assert = require('assert'); 7 | const lambda = require('../index'); 8 | 9 | const fs = require('fs').promises; 10 | const path = require('path'); 11 | 12 | describe('event', () => { 13 | 14 | before(async() => { 15 | }); 16 | 17 | it('Connect Expired Token', async() => { 18 | let text = await readFile('./test/json/connect1.json'); 19 | let response = await lambda.handler(JSON.parse(text), {logStreamName:"test"}); 20 | assert.equal('{"statusCode":400,"body":"unable to verify token"}', JSON.stringify(response)); 21 | }); 22 | 23 | it('Connect Missing Token', async() => { 24 | let text = await readFile('./test/json/connect1.json'); 25 | let response = await lambda.handler(JSON.parse(text), {logStreamName:"test"}); 26 | assert.equal('{"statusCode":400,"body":"unable to verify token"}', JSON.stringify(response)); 27 | }); 28 | }); 29 | 30 | async function readFile(filePath) { 31 | return fs.readFile(filePath).then((data) => { 32 | return data.toString(); 33 | }); 34 | } --------------------------------------------------------------------------------