@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.
Files changed (56) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/README.md +216 -187
  3. package/dist/client/Collection.d.ts +14 -9
  4. package/dist/client/Collection.d.ts.map +1 -1
  5. package/dist/client/Collection.js +3 -9
  6. package/dist/client/Collection.js.map +1 -1
  7. package/dist/client/Database.d.ts +1 -3
  8. package/dist/client/Database.d.ts.map +1 -1
  9. package/dist/client/Database.js +2 -7
  10. package/dist/client/Database.js.map +1 -1
  11. package/dist/client/DynamoClient.d.ts +1 -1
  12. package/dist/client/DynamoClient.d.ts.map +1 -1
  13. package/dist/client/DynamoClient.js +2 -5
  14. package/dist/client/DynamoClient.js.map +1 -1
  15. package/dist/client/FindCursor.d.ts +1 -3
  16. package/dist/client/FindCursor.d.ts.map +1 -1
  17. package/dist/client/FindCursor.js +1 -5
  18. package/dist/client/FindCursor.js.map +1 -1
  19. package/dist/client/index.iam.d.ts +1 -1
  20. package/dist/client/index.iam.d.ts.map +1 -1
  21. package/dist/client/index.iam.js.map +1 -1
  22. package/dist/integrations/react-admin/dataProvider.d.ts +0 -1
  23. package/dist/integrations/react-admin/dataProvider.d.ts.map +1 -1
  24. package/dist/integrations/react-admin/dataProvider.js +10 -11
  25. package/dist/integrations/react-admin/dataProvider.js.map +1 -1
  26. package/dist/integrations/react-admin/types.d.ts +0 -2
  27. package/dist/integrations/react-admin/types.d.ts.map +1 -1
  28. package/dist/scripts/generate-shadow-config.d.ts +3 -0
  29. package/dist/scripts/generate-shadow-config.d.ts.map +1 -0
  30. package/dist/scripts/generate-shadow-config.js +159 -0
  31. package/dist/scripts/generate-shadow-config.js.map +1 -0
  32. package/dist/scripts/repair-shadows.js +1 -1
  33. package/dist/scripts/repair-shadows.js.map +1 -1
  34. package/dist/server/handler.cjs +2 -2
  35. package/dist/shadows/generator.d.ts +14 -3
  36. package/dist/shadows/generator.d.ts.map +1 -1
  37. package/dist/shadows/generator.js +19 -0
  38. package/dist/shadows/generator.js.map +1 -1
  39. package/dist/shadows/index.d.ts +3 -2
  40. package/dist/shadows/index.d.ts.map +1 -1
  41. package/dist/shadows/index.js +1 -1
  42. package/dist/shadows/index.js.map +1 -1
  43. package/dist/shadows/schema.d.ts +60 -0
  44. package/dist/shadows/schema.d.ts.map +1 -0
  45. package/dist/shadows/schema.js +8 -0
  46. package/dist/shadows/schema.js.map +1 -0
  47. package/dist/shadows/types.d.ts +1 -5
  48. package/dist/shadows/types.d.ts.map +1 -1
  49. package/package.json +7 -4
  50. package/terraform/examples/advanced/README.md +0 -129
  51. package/terraform/examples/advanced/main.tf +0 -158
  52. package/terraform/examples/advanced/shadow.config.json +0 -35
  53. package/terraform/examples/advanced/variables.tf +0 -28
  54. package/terraform/examples/basic/README.md +0 -53
  55. package/terraform/examples/basic/main.tf +0 -99
  56. 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
- }