Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
c51af7e
Create 1.17.1 branch
mfriesen Mar 15, 2025
c14889e
Added 3 Subnet Support for ca-central-1
mfriesen Mar 31, 2025
65df9e7
Added Timer
mfriesen Apr 10, 2025
06779c5
update
mfriesen Apr 11, 2025
baecc94
update
mfriesen Apr 11, 2025
2d1e550
reverted method timer
mfriesen Apr 11, 2025
00c7d23
#364 - OpenAPI Doc for adding a local resource item is not showing ad…
mfriesen Apr 11, 2025
200ce98
#363 - Add validation of documentId when creating a relationship
mfriesen Apr 11, 2025
dc93dd2
#365 - Upgrade Node.js for WebsocketApi
mfriesen Apr 15, 2025
e5984e7
#351 - Added DynamoDb deletion protection option
mfriesen Apr 15, 2025
efb33bc
Updated Websocket to Node22
mfriesen Apr 15, 2025
791c2c8
#351 - Enable disable delete protection for Cognito
mfriesen Apr 15, 2025
890d1e9
#106
mfriesen Apr 17, 2025
0ade5d5
#106 - added POST /document/{documentId}/syncs
mfriesen Apr 18, 2025
0dd3df0
update
mfriesen Apr 18, 2025
8676f46
update
mfriesen Apr 18, 2025
dba6339
update
mfriesen Apr 18, 2025
e31bea1
update
mfriesen Apr 18, 2025
fca7284
updated dependencies
mfriesen Apr 18, 2025
a28e21c
#369 - Remove Websocket API from FormKiQ Deployment
mfriesen May 12, 2025
86a188c
#370 - Add a "/formkiq" PATH to IAM groups created from CloudFormation
mfriesen May 12, 2025
f51b003
update
mfriesen May 13, 2025
233cab6
update
mfriesen May 13, 2025
de7534f
#106 - Add syncing of attributes / tags
mfriesen May 13, 2025
e059731
update
mfriesen May 14, 2025
4258b97
#374 - Enable list of failed syncs (such as OpenSearch)
mfriesen May 22, 2025
5fde4e8
update
mfriesen May 22, 2025
7ff4aad
update
mfriesen May 22, 2025
09d22c2
update
mfriesen May 22, 2025
594fb34
update
mfriesen May 22, 2025
4e5a4b1
update
mfriesen May 22, 2025
b2fd1a5
update
mfriesen May 22, 2025
1970768
#376 - Fix concurrency bug when adding a lot of files to a new folder
mfriesen May 29, 2025
22a11ad
added me-central-1, me-south-1
mfriesen May 30, 2025
68689f7
#378 - Soft Deleted Documents cause empty searchs on search
mfriesen Jun 6, 2025
97773a8
#380 - Uploading Document without ContentType overwrites saved Conten…
mfriesen Jun 10, 2025
0f55ed2
update
mfriesen Jun 11, 2025
10c5ac5
update
mfriesen Jun 11, 2025
8bedad3
#381 - Unable to Delete a folder with special characters
mfriesen Jun 13, 2025
f2f492e
Fixed permission
mfriesen Jun 16, 2025
495fc7f
Downgraded JNA to 5.17.0
mfriesen Jun 16, 2025
18a47ba
Updated to tesseract 5.3.9
mfriesen Jun 16, 2025
8b50447
downgraded tess4j
mfriesen Jun 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .github/workflows/deployment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -143,3 +143,15 @@ jobs:
aws s3 cp vpc.yaml s3://formkiq-core-distribution-ap-northeast-1/1.17.0/vpc.yaml
aws s3 cp vpc-import.yaml s3://formkiq-core-distribution-ap-northeast-1/1.17.0/vpc-import.yaml
aws s3 cp opensearch-bastion.yaml s3://formkiq-core-distribution-ap-northeast-1/1.17.0/opensearch-bastion.yaml

sam package --s3-prefix 1.17.0 --s3-bucket formkiq-core-distribution-me-south-1 --template-file template.yaml --region me-south-1 --output-template-file template-1.17.0.yaml --profile formkiqtest
aws s3 cp template-1.17.0.yaml s3://formkiq-core-distribution-me-south-1/1.17.0/template.yaml --profile formkiqtest
aws s3 cp vpc.yaml s3://formkiq-core-distribution-me-south-1/1.17.0/vpc.yaml --profile formkiqtest
aws s3 cp vpc-import.yaml s3://formkiq-core-distribution-me-south-1/1.17.0/vpc-import.yaml --profile formkiqtest
aws s3 cp opensearch-bastion.yaml s3://formkiq-core-distribution-me-south-1/1.17.0/opensearch-bastion.yaml --profile formkiqtest

sam package --s3-prefix 1.17.0 --s3-bucket formkiq-core-distribution-me-central-1 --template-file template.yaml --region me-central-1 --output-template-file template-1.17.0.yaml --profile formkiqtest
aws s3 cp template-1.17.0.yaml s3://formkiq-core-distribution-me-central-1/1.17.0/template.yaml --profile formkiqtest
aws s3 cp vpc.yaml s3://formkiq-core-distribution-me-central-1/1.17.0/vpc.yaml --profile formkiqtest
aws s3 cp vpc-import.yaml s3://formkiq-core-distribution-me-central-1/1.17.0/vpc-import.yaml --profile formkiqtest
aws s3 cp opensearch-bastion.yaml s3://formkiq-core-distribution-me-central-1/1.17.0/opensearch-bastion.yaml --profile formkiqtest
2 changes: 1 addition & 1 deletion actions/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ dependencies {
testImplementation project(':fkq-test-utils')
testImplementation project(':fkq-plugins')
testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version:'5.11.4'
testImplementation group: 'org.testcontainers', name: 'testcontainers', version: '1.20.4'
testImplementation group: 'org.testcontainers', name: 'testcontainers', version: '1.20.6'
}

test {
Expand Down
6 changes: 3 additions & 3 deletions aws-cognito-identity/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
description = "AWS Cognito Identity"

dependencies {
api group: 'software.amazon.awssdk', name: 'cognitoidentity', version: '2.29.51'
implementation group: 'software.amazon.awssdk', name: 'cognitoidentityprovider', version: '2.29.51'
implementation group: 'software.amazon.awssdk', name: 'url-connection-client', version: '2.29.51'
api group: 'software.amazon.awssdk', name: 'cognitoidentity', version: '2.31.25'
implementation group: 'software.amazon.awssdk', name: 'cognitoidentityprovider', version: '2.31.25'
implementation group: 'software.amazon.awssdk', name: 'url-connection-client', version: '2.31.25'

configurations.all {
exclude group: 'software.amazon.awssdk', module: 'apache-client'
Expand Down
4 changes: 2 additions & 2 deletions aws-cognito-identityprovider/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
description = "AWS Cognito Identity Provider"

dependencies {
api group: 'software.amazon.awssdk', name: 'cognitoidentityprovider', version: '2.29.51'
implementation group: 'software.amazon.awssdk', name: 'url-connection-client', version: '2.29.51'
api group: 'software.amazon.awssdk', name: 'cognitoidentityprovider', version: '2.31.25'
implementation group: 'software.amazon.awssdk', name: 'url-connection-client', version: '2.31.25'
implementation project(':fkq-lambda-services')

configurations.all {
Expand Down
4 changes: 2 additions & 2 deletions aws-dynamodb/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ dependencies {

annotationProcessor group: 'com.formkiq', name: 'graalvm-annotations-processor', version: '1.4.2'

api group: 'software.amazon.awssdk', name: 'dynamodb', version: '2.29.51'
api group: 'software.amazon.awssdk', name: 'dynamodb', version: '2.31.25'
implementation project(':fkq-lambda-services')
//implementation project(':aws-xray')
implementation group: 'software.amazon.awssdk', name: 'url-connection-client', version: '2.29.51'
implementation group: 'software.amazon.awssdk', name: 'url-connection-client', version: '2.31.25'
implementation group: 'com.formkiq', name: 'graalvm-annotations', version: '1.2.0'

testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version:'5.11.4'
Expand Down
11 changes: 9 additions & 2 deletions aws-dynamodb/config/checkstyle/import-control.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,16 @@
<allow pkg="com.formkiq.aws.dynamodb" />
<allow pkg="com.formkiq.graalvm.annotations" />
<allow pkg="com.formkiq.module.lambdaservices" />

<allow pkg="java.io" />
<allow pkg="java.net" />
<allow pkg="java.text" />
<allow pkg="java.time" />
<allow pkg="java.util" />


<allow pkg="software.amazon.awssdk.http" />
<allow pkg="software.amazon.awssdk.awscore.exception" />
<allow pkg="software.amazon.awssdk.http.urlconnection" />
<allow pkg="software.amazon.awssdk.auth.credentials" />
<allow pkg="software.amazon.awssdk.core.client.config" />
<allow pkg="software.amazon.awssdk.regions" />
Expand All @@ -27,6 +30,10 @@
<allow pkg="java.time" />
<allow pkg="java.security" />
</subpackage>

<subpackage name="base64">
<allow pkg="java.nio.charset" />
</subpackage>
</subpackage>

</import-control>
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
/**
* MIT License
*
* Copyright (c) 2018 - 2020 FormKiQ
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
package com.formkiq.aws.dynamodb;

import java.util.Date;
import java.util.Map;
import java.util.HashMap;

import software.amazon.awssdk.services.dynamodb.model.AttributeValue;

/**
* Builder for assembling a DynamoDB item attribute map.
* <p>
* Only non-null values are added. Supports String, Number, and Boolean types.
*/
public class DynamoDbAttributeMapBuilder {

/** Attribute {@link Map}. */
private final Map<String, AttributeValue> attributes = new HashMap<>();

/**
* constructor.
*/
private DynamoDbAttributeMapBuilder() {}

/**
* Static factory method to create a new builder instance.
*
* @return a new DynamoDbAttributeMapBuilder
*/
public static DynamoDbAttributeMapBuilder builder() {
return new DynamoDbAttributeMapBuilder();
}

/**
* Adds a String attribute if the value is non-null.
*
* @param name the attribute name
* @param value the String value
* @return this builder
*/
public DynamoDbAttributeMapBuilder withString(final String name, final String value) {
if (value != null) {
attributes.put(name, AttributeValue.builder().s(value).build());
}
return this;
}

/**
* Adds a Number attribute if the value is non-null.
*
* @param name the attribute name
* @param value the numeric value
* @return this builder
*/
public DynamoDbAttributeMapBuilder withNumber(final String name, final Number value) {
if (value != null) {
attributes.put(name, AttributeValue.builder().n(value.toString()).build());
}
return this;
}

/**
* Adds a Boolean attribute if the value is non-null.
*
* @param name the attribute name
* @param value the Boolean value
* @return this builder
*/
public DynamoDbAttributeMapBuilder withBoolean(final String name, final Boolean value) {
if (value != null) {
attributes.put(name, AttributeValue.builder().bool(value).build());
}
return this;
}

/**
* Builds the attribute map to be used in a DynamoDB Put/Update operation.
*
* @return a map of attribute names to AttributeValue
*/
public Map<String, AttributeValue> build() {
return attributes;
}

/**
* Adds a {@link Date} attribute if the value is non-null.
*
* @param name the attribute name
* @param value the Boolean value
* @return this builder
*/
public DynamoDbAttributeMapBuilder withDate(final String name, final Date value) {
if (value != null) {
String val = DynamoDbTypes.fromDate(value);
attributes.put(name, AttributeValue.builder().s(val).build());
}

return this;
}

public void withAttributeValue(final String name, final AttributeValue value) {
if (value != null) {
attributes.put(name, value);
}
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@
import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration.Builder;
import software.amazon.awssdk.http.SdkHttpClient;
import software.amazon.awssdk.http.urlconnection.UrlConnectionHttpClient;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
import software.amazon.awssdk.services.dynamodb.DynamoDbClientBuilder;
Expand All @@ -50,15 +52,10 @@ public class DynamoDbConnectionBuilder {
* @param enableAwsXray Enables AWS X-Ray
*/
public DynamoDbConnectionBuilder(final boolean enableAwsXray) {
System.setProperty("software.amazon.awssdk.http.service.impl",
"software.amazon.awssdk.http.urlconnection.UrlConnectionSdkHttpService");
Builder clientConfig = ClientOverrideConfiguration.builder();

// if (enableAwsXray) {
// clientConfig.addExecutionInterceptor(new TracingInterceptor());
// }

this.builder = DynamoDbClient.builder().overrideConfiguration(clientConfig.build());
SdkHttpClient c = UrlConnectionHttpClient.builder().build();
this.builder =
DynamoDbClient.builder().httpClient(c).overrideConfiguration(clientConfig.build());
}

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
/**
* MIT License
*
* Copyright (c) 2018 - 2020 FormKiQ
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
package com.formkiq.aws.dynamodb;

/**
* Enumeration of DynamoDB query error categories.
*/
public enum DynamoDbError {

/**
* Occurs when an ExclusiveStartKey is invalid or malformed.
*/
INVALID_START_KEY,

/**
* Any other error not specifically categorized.
*/
OTHER;
}
Loading
Loading