@exabugs/dynamodb-client 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +57 -0
- package/README.md +216 -187
- package/dist/client/Collection.d.ts +14 -9
- package/dist/client/Collection.d.ts.map +1 -1
- package/dist/client/Collection.js +3 -9
- package/dist/client/Collection.js.map +1 -1
- package/dist/client/Database.d.ts +1 -3
- package/dist/client/Database.d.ts.map +1 -1
- package/dist/client/Database.js +2 -7
- package/dist/client/Database.js.map +1 -1
- package/dist/client/DynamoClient.d.ts +1 -1
- package/dist/client/DynamoClient.d.ts.map +1 -1
- package/dist/client/DynamoClient.js +2 -5
- package/dist/client/DynamoClient.js.map +1 -1
- package/dist/client/FindCursor.d.ts +1 -3
- package/dist/client/FindCursor.d.ts.map +1 -1
- package/dist/client/FindCursor.js +1 -5
- package/dist/client/FindCursor.js.map +1 -1
- package/dist/client/index.iam.d.ts +1 -1
- package/dist/client/index.iam.d.ts.map +1 -1
- package/dist/client/index.iam.js.map +1 -1
- package/dist/integrations/react-admin/dataProvider.d.ts +0 -1
- package/dist/integrations/react-admin/dataProvider.d.ts.map +1 -1
- package/dist/integrations/react-admin/dataProvider.js +10 -11
- package/dist/integrations/react-admin/dataProvider.js.map +1 -1
- package/dist/integrations/react-admin/types.d.ts +0 -2
- package/dist/integrations/react-admin/types.d.ts.map +1 -1
- package/dist/scripts/generate-shadow-config.d.ts +3 -0
- package/dist/scripts/generate-shadow-config.d.ts.map +1 -0
- package/dist/scripts/generate-shadow-config.js +159 -0
- package/dist/scripts/generate-shadow-config.js.map +1 -0
- package/dist/scripts/repair-shadows.js +1 -1
- package/dist/scripts/repair-shadows.js.map +1 -1
- package/dist/server/handler.cjs +2 -2
- package/dist/shadows/generator.d.ts +14 -3
- package/dist/shadows/generator.d.ts.map +1 -1
- package/dist/shadows/generator.js +19 -0
- package/dist/shadows/generator.js.map +1 -1
- package/dist/shadows/index.d.ts +3 -2
- package/dist/shadows/index.d.ts.map +1 -1
- package/dist/shadows/index.js +1 -1
- package/dist/shadows/index.js.map +1 -1
- package/dist/shadows/schema.d.ts +60 -0
- package/dist/shadows/schema.d.ts.map +1 -0
- package/dist/shadows/schema.js +8 -0
- package/dist/shadows/schema.js.map +1 -0
- package/dist/shadows/types.d.ts +1 -5
- package/dist/shadows/types.d.ts.map +1 -1
- package/package.json +7 -4
- package/terraform/examples/advanced/README.md +0 -129
- package/terraform/examples/advanced/main.tf +0 -158
- package/terraform/examples/advanced/shadow.config.json +0 -35
- package/terraform/examples/advanced/variables.tf +0 -28
- package/terraform/examples/basic/README.md +0 -53
- package/terraform/examples/basic/main.tf +0 -99
- package/terraform/examples/basic/variables.tf +0 -17
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
# Basic Example
|
|
2
|
-
|
|
3
|
-
This example demonstrates a basic deployment of the DynamoDB Client Lambda function with minimal configuration.
|
|
4
|
-
|
|
5
|
-
## What This Example Creates
|
|
6
|
-
|
|
7
|
-
- DynamoDB table (Single-Table design)
|
|
8
|
-
- Cognito User Pool (for authentication)
|
|
9
|
-
- Records Lambda function with Function URL
|
|
10
|
-
- IAM roles and policies
|
|
11
|
-
- CloudWatch Logs
|
|
12
|
-
|
|
13
|
-
## Usage
|
|
14
|
-
|
|
15
|
-
1. Initialize Terraform:
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
terraform init
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
2. Review the plan:
|
|
22
|
-
|
|
23
|
-
```bash
|
|
24
|
-
terraform plan
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
3. Apply the configuration:
|
|
28
|
-
|
|
29
|
-
```bash
|
|
30
|
-
terraform apply
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
4. Get the Function URL:
|
|
34
|
-
|
|
35
|
-
```bash
|
|
36
|
-
terraform output function_url
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
## Clean Up
|
|
40
|
-
|
|
41
|
-
To destroy all resources:
|
|
42
|
-
|
|
43
|
-
```bash
|
|
44
|
-
terraform destroy
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
## Customization
|
|
48
|
-
|
|
49
|
-
You can customize the deployment by modifying `variables.tf` or passing variables:
|
|
50
|
-
|
|
51
|
-
```bash
|
|
52
|
-
terraform apply -var="project_name=my-app" -var="environment=prod"
|
|
53
|
-
```
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
# Basic Example: DynamoDB Client Lambda Deployment
|
|
2
|
-
|
|
3
|
-
terraform {
|
|
4
|
-
required_version = ">= 1.5.0"
|
|
5
|
-
|
|
6
|
-
required_providers {
|
|
7
|
-
aws = {
|
|
8
|
-
source = "hashicorp/aws"
|
|
9
|
-
version = "~> 5.0"
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
provider "aws" {
|
|
15
|
-
region = var.region
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
# DynamoDB Table
|
|
19
|
-
resource "aws_dynamodb_table" "main" {
|
|
20
|
-
name = "${var.project_name}-${var.environment}-records"
|
|
21
|
-
billing_mode = "PAY_PER_REQUEST"
|
|
22
|
-
hash_key = "PK"
|
|
23
|
-
range_key = "SK"
|
|
24
|
-
|
|
25
|
-
attribute {
|
|
26
|
-
name = "PK"
|
|
27
|
-
type = "S"
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
attribute {
|
|
31
|
-
name = "SK"
|
|
32
|
-
type = "S"
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
tags = {
|
|
36
|
-
Name = "${var.project_name}-${var.environment}-records"
|
|
37
|
-
Environment = var.environment
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
# Cognito User Pool
|
|
42
|
-
resource "aws_cognito_user_pool" "main" {
|
|
43
|
-
name = "${var.project_name}-${var.environment}-users"
|
|
44
|
-
|
|
45
|
-
tags = {
|
|
46
|
-
Name = "${var.project_name}-${var.environment}-users"
|
|
47
|
-
Environment = var.environment
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
# Records Lambda Module
|
|
52
|
-
module "lambda_records" {
|
|
53
|
-
source = "../../"
|
|
54
|
-
|
|
55
|
-
project_name = var.project_name
|
|
56
|
-
environment = var.environment
|
|
57
|
-
region = var.region
|
|
58
|
-
|
|
59
|
-
# DynamoDB
|
|
60
|
-
dynamodb_table_name = aws_dynamodb_table.main.name
|
|
61
|
-
dynamodb_table_arn = aws_dynamodb_table.main.arn
|
|
62
|
-
|
|
63
|
-
# Cognito
|
|
64
|
-
cognito_user_pool_id = aws_cognito_user_pool.main.id
|
|
65
|
-
|
|
66
|
-
# Shadow Config
|
|
67
|
-
shadow_config = base64encode(jsonencode({
|
|
68
|
-
"$schemaVersion" = "1.0"
|
|
69
|
-
resources = {
|
|
70
|
-
articles = {
|
|
71
|
-
sortDefaults = {
|
|
72
|
-
field = "updatedAt"
|
|
73
|
-
order = "DESC"
|
|
74
|
-
}
|
|
75
|
-
shadows = {
|
|
76
|
-
title = { type = "string" }
|
|
77
|
-
status = { type = "string" }
|
|
78
|
-
createdAt = { type = "datetime" }
|
|
79
|
-
updatedAt = { type = "datetime" }
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}))
|
|
84
|
-
|
|
85
|
-
# Logging
|
|
86
|
-
log_retention_days = 7
|
|
87
|
-
log_level = "info"
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
# Outputs
|
|
91
|
-
output "function_url" {
|
|
92
|
-
description = "Lambda Function URL"
|
|
93
|
-
value = module.lambda_records.function_url
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
output "function_name" {
|
|
97
|
-
description = "Lambda Function Name"
|
|
98
|
-
value = module.lambda_records.function_name
|
|
99
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
variable "project_name" {
|
|
2
|
-
description = "Project name"
|
|
3
|
-
type = string
|
|
4
|
-
default = "my-project"
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
variable "environment" {
|
|
8
|
-
description = "Environment (dev/stg/prd)"
|
|
9
|
-
type = string
|
|
10
|
-
default = "dev"
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
variable "region" {
|
|
14
|
-
description = "AWS Region"
|
|
15
|
-
type = string
|
|
16
|
-
default = "us-east-1"
|
|
17
|
-
}
|