├── .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 | }
--------------------------------------------------------------------------------