thinkwork-cli 0.13.2 → 1.0.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/README.md +3 -14
- package/dist/{api-client-JYZXYQJR.js → api-client-4P4JZOBX.js} +1 -1
- package/dist/{chunk-Z2F6RJFR.js → chunk-4OMDWYZQ.js} +4 -5
- package/dist/{chunk-ILZKG5WV.js → chunk-AD2NIWB5.js} +434 -69
- package/dist/chunk-MWQ7RO76.js +137 -0
- package/dist/{chunk-DVPBI5HM.js → chunk-OLUQ4U2Z.js} +26 -26
- package/dist/{chunk-QOERT44A.js → chunk-YQCYD6NE.js} +57 -44
- package/dist/cli.js +4400 -16431
- package/dist/commands/enterprise/templates/deploy-repo/scripts/apply-release.mjs +0 -1
- package/dist/commands/enterprise/templates/deploy-repo/scripts/smoke.mjs +0 -1
- package/dist/commands/enterprise/templates/deploy-repo/terraform/main.tf +0 -14
- package/dist/{dist-es-CRV46D5B.js → dist-es-2OTNTL4N.js} +4 -4
- package/dist/{dist-es-ENBUC3JP.js → dist-es-2XVAH4BQ.js} +2 -2
- package/dist/{dist-es-DCY4IC3Y.js → dist-es-3DPDUJAH.js} +2 -2
- package/dist/{dist-es-G7PTG75M.js → dist-es-BNZTBBVC.js} +1 -1
- package/dist/{dist-es-GKDBE7E6.js → dist-es-CD2RBDAC.js} +1 -1
- package/dist/{dist-es-R7FGL2IB.js → dist-es-I4FW57PS.js} +1 -1
- package/dist/{dist-es-USORBXZ5.js → dist-es-KVFWJNDY.js} +4 -4
- package/dist/{dist-es-HY3535OI.js → dist-es-PS73DWNL.js} +2 -2
- package/dist/{dist-es-LDE437AM.js → dist-es-S3NZQFGT.js} +1 -1
- package/dist/{dist-es-G54LBMRN.js → dist-es-SGCA4P32.js} +1 -1
- package/dist/{dist-es-Q57SZXZ7.js → dist-es-WBM6J4RA.js} +2 -2
- package/dist/{dist-es-P26FWFLT.js → dist-es-ZGVADYIF.js} +8 -8
- package/dist/drizzle/0227_analyst_reader_role.sql +17 -26
- package/dist/drizzle/0230_analyst_rls.sql +28 -45
- package/dist/drizzle/0261_native_auth_control_plane.sql +7 -3
- package/dist/drizzle/0270_tool_execution_ledger.sql +115 -0
- package/dist/drizzle/0271_ontology_twin_declarations.sql +47 -0
- package/dist/drizzle/0272_identity_graph_projection_cursor.sql +23 -0
- package/dist/drizzle/0273_twin_materialization_suggestions.sql +29 -0
- package/dist/drizzle/0274_tenant_mcp_twin_keys.sql +59 -0
- package/dist/drizzle/0275_identity_bulk_rebuild_fence.sql +30 -0
- package/dist/drizzle/0276_tool_execution_ledger_allow_cascade_delete.sql +18 -0
- package/dist/drizzle/0277_knowledge_base_sources.sql +107 -0
- package/dist/drizzle/0278_kb_page_transcription.sql +55 -0
- package/dist/drizzle/0279_mcp_servers_off_plugin_provenance.sql +93 -0
- package/dist/drizzle/0280_work_item_external_refs_drop_plane_provider.sql +46 -0
- package/dist/drizzle/0281_tenant_mcp_twin_keys_expiry_suffix.sql +9 -0
- package/dist/drizzle/0282_tenant_mcp_twin_keys_grants.sql +24 -0
- package/dist/drizzle/0283_agents_agentcore_runtime_dispatch.sql +13 -0
- package/dist/drizzle/0284_user_brain_claims.sql +69 -0
- package/dist/drizzle/0285_tenant_mcp_twin_keys_trusted_subsystem.sql +30 -0
- package/dist/drizzle/0286_brain_analytics_key.sql +26 -0
- package/dist/drizzle/0287_brain_subject.sql +25 -0
- package/dist/drizzle/0288_multi_lane_identities.sql +25 -0
- package/dist/{loadSso-DJVB7BXE.js → loadSso-ETCXTR4I.js} +2 -2
- package/dist/{loadSso-JAMNA3WY.js → loadSso-UBD7KUHE.js} +2 -2
- package/dist/plugins/README.md +2 -2
- package/dist/plugins/catalog/package.json +0 -3
- package/dist/plugins/catalog/src/__tests__/build-catalog.test.ts +6 -3
- package/dist/plugins/catalog/src/__tests__/catalog.test.ts +21 -21
- package/dist/plugins/catalog/src/__tests__/contracts.test.ts +102 -25
- package/dist/plugins/catalog/src/__tests__/plugin-package.test.ts +7 -6
- package/dist/plugins/catalog/src/__tests__/plugin-registry.test.ts +0 -15
- package/dist/plugins/catalog/src/contracts.ts +15 -0
- package/dist/plugins/catalog/src/registry/generated-first-party.ts +0 -18
- package/dist/plugins/n8n/test/integrated-app-contract.test.ts +1 -1
- package/dist/plugins/twenty/package.json +2 -1
- package/dist/plugins/twenty/scripts/LAMBDA_DEPLOY.md +114 -0
- package/dist/plugins/twenty/scripts/build-lambda.sh +29 -0
- package/dist/plugins/twenty/scripts/configure-product-views.ts +195 -0
- package/dist/plugins/twenty/scripts/lambda-handler.ts +49 -0
- package/dist/plugins/twenty/scripts/lib/__tests__/load-attachments.test.ts +38 -0
- package/dist/plugins/twenty/scripts/lib/__tests__/load-records.test.ts +145 -2
- package/dist/plugins/twenty/scripts/lib/__tests__/mappers.test.ts +397 -151
- package/dist/plugins/twenty/scripts/lib/__tests__/members-ensure.test.ts +28 -129
- package/dist/plugins/twenty/scripts/lib/__tests__/provision-members-db.test.ts +10 -0
- package/dist/plugins/twenty/scripts/lib/__tests__/schema-ensure.test.ts +13 -8
- package/dist/plugins/twenty/scripts/lib/lastmile-reader.ts +222 -2
- package/dist/plugins/twenty/scripts/lib/load-attachments.ts +29 -0
- package/dist/plugins/twenty/scripts/lib/load-records.ts +160 -43
- package/dist/plugins/twenty/scripts/lib/mappers.ts +368 -152
- package/dist/plugins/twenty/scripts/lib/members-ensure.ts +43 -268
- package/dist/plugins/twenty/scripts/lib/provision-members-db.ts +57 -0
- package/dist/plugins/twenty/scripts/lib/schema-ensure.ts +136 -31
- package/dist/plugins/twenty/scripts/migrate-lastmile.ts +254 -152
- package/dist/plugins/twenty/scripts/provision-twenty-members.ts +44 -1
- package/dist/plugins/twenty/scripts/purge-lastmile-import.ts +178 -0
- package/dist/plugins/twenty/scripts/restructure-products.ts +312 -0
- package/dist/plugins/twenty/scripts/retag-stage-values.ts +362 -0
- package/dist/plugins/twenty/test/manifest.test.ts +2 -4
- package/dist/scripts/post-deploy.sh +79 -1
- package/dist/{signin-UGDWTGS4.js → signin-5QZNRSOO.js} +2 -2
- package/dist/{sso-oidc-Q4VXANXY.js → sso-oidc-XK673P54.js} +2 -2
- package/dist/{sts-CWLSE3GH.js → sts-OXI2UALF.js} +6 -134
- package/dist/{sts-DNZLNVOV.js → sts-SQW4NBK3.js} +6 -134
- package/dist/terraform/examples/greenfield/main.tf +233 -175
- package/dist/terraform/examples/greenfield/terraform.tfvars.example +12 -8
- package/dist/terraform/modules/app/agentcore-admin/main.tf +47 -0
- package/dist/terraform/modules/app/agentcore-code-interpreter/README.md +39 -47
- package/dist/terraform/modules/app/agentcore-code-interpreter/main.tf +13 -66
- package/dist/terraform/modules/app/agentcore-identity/main.tf +106 -26
- package/dist/terraform/modules/app/agentcore-identity/outputs.tf +6 -6
- package/dist/terraform/modules/app/agentcore-identity/scripts/bootstrap_twenty_oauth_client.sh +216 -99
- package/dist/terraform/modules/app/agentcore-identity/scripts/delete_identity.sh +6 -9
- package/dist/terraform/modules/app/agentcore-identity/scripts/delete_workload_identity.sh +19 -0
- package/dist/terraform/modules/app/agentcore-identity/scripts/ensure_workload_identity.sh +29 -0
- package/dist/terraform/modules/app/agentcore-identity/scripts/read_identity.sh +22 -7
- package/dist/terraform/modules/app/agentcore-identity/scripts/reconcile_twenty_identity.sh +17 -46
- package/dist/terraform/modules/app/agentcore-identity/scripts/reconcile_twenty_provider.mjs +65 -3
- package/dist/terraform/modules/app/agentcore-identity/tests/tainted-marker/after.tf +15 -0
- package/dist/terraform/modules/app/agentcore-identity/tests/tainted-marker/before.tf +7 -0
- package/dist/terraform/modules/app/agentcore-identity/tests/tainted-marker/identity-after.tf +8 -0
- package/dist/terraform/modules/app/agentcore-identity/tests/tainted-marker/identity-before.tf +9 -0
- package/dist/terraform/modules/app/agentcore-identity/tests/tainted-marker/thinkwork-after.tf +3 -0
- package/dist/terraform/modules/app/agentcore-identity/tests/tainted-marker/thinkwork-before.tf +3 -0
- package/dist/terraform/modules/app/agentcore-identity/variables.tf +6 -0
- package/dist/terraform/modules/app/agentcore-memory/README.md +46 -9
- package/dist/terraform/modules/app/agentcore-memory/main.tf +27 -10
- package/dist/terraform/modules/app/agentcore-memory/scripts/create_or_find_memory.sh +156 -24
- package/dist/terraform/modules/app/agentcore-pi/README.md +1 -3
- package/dist/terraform/modules/app/agentcore-pi/main.tf +42 -52
- package/dist/terraform/modules/app/agentcore-pi/outputs.tf +3 -3
- package/dist/terraform/modules/app/agentcore-pi/scripts/reconcile_pi_runtime.mjs +175 -0
- package/dist/terraform/modules/app/agentcore-pi/variables.tf +35 -28
- package/dist/terraform/modules/app/agentcore-platform/main.tf +68 -0
- package/dist/terraform/modules/app/agentcore-runtime/main.tf +4 -20
- package/dist/terraform/modules/app/capability-broker/main.tf +2 -2
- package/dist/terraform/modules/app/capability-broker/variables.tf +11 -0
- package/dist/terraform/modules/app/deployment-control-plane/README.md +264 -0
- package/dist/terraform/modules/app/deployment-control-plane/buildspec.yml +4 -1
- package/dist/terraform/modules/app/deployment-control-plane/main.tf +94 -0
- package/dist/terraform/modules/app/deployment-control-plane/outputs.tf +5 -0
- package/dist/terraform/modules/app/deployment-control-plane/runner.py +2641 -124
- package/dist/terraform/modules/app/deployment-control-plane/test_runner_bundle.py +2034 -154
- package/dist/terraform/modules/app/deployment-control-plane/variables.tf +33 -0
- package/dist/terraform/modules/app/lambda-api/auth-state.tf +72 -0
- package/dist/terraform/modules/app/lambda-api/chat-latency-observability.tf +466 -0
- package/dist/terraform/modules/app/lambda-api/dispatch-dlq.tf +55 -0
- package/dist/terraform/modules/app/lambda-api/handlers.tf +411 -723
- package/dist/terraform/modules/app/lambda-api/iam-grouped.tf +262 -198
- package/dist/terraform/modules/app/lambda-api/main.tf +51 -13
- package/dist/terraform/modules/app/lambda-api/mcp-oauth.tf +4 -181
- package/dist/terraform/modules/app/lambda-api/memory-alarms.tf +3 -28
- package/dist/terraform/modules/app/lambda-api/oauth-secrets.tf +1 -2
- package/dist/terraform/modules/app/lambda-api/outputs.tf +17 -45
- package/dist/terraform/modules/app/lambda-api/turn-assertion.tf +45 -0
- package/dist/terraform/modules/app/lambda-api/variables.tf +219 -126
- package/dist/{plugins/n8n/terraform → terraform/modules/app}/n8n/README.md +1 -1
- package/dist/{plugins/n8n/terraform → terraform/modules/app}/n8n/main.tf +18 -18
- package/dist/terraform/modules/app/sandbox-log-scrubber/README.md +11 -10
- package/dist/terraform/modules/app/sandbox-log-scrubber/main.tf +5 -5
- package/dist/terraform/modules/app/static-site/main.tf +1 -1
- package/dist/terraform/modules/app/www-dns/main.tf +9 -27
- package/dist/terraform/modules/app/www-dns/variables.tf +4 -10
- package/dist/terraform/modules/data/aurora-postgres/README.md +34 -0
- package/dist/terraform/modules/data/aurora-postgres/alarms.tf +82 -0
- package/dist/terraform/modules/data/aurora-postgres/main.tf +27 -57
- package/dist/terraform/modules/data/aurora-postgres/outputs.tf +0 -9
- package/dist/terraform/modules/data/aurora-postgres/variables.tf +41 -0
- package/dist/terraform/modules/data/s3-buckets/main.tf +5 -6
- package/dist/terraform/modules/foundation/cognito/main.tf +81 -8
- package/dist/terraform/modules/foundation/cognito/outputs.tf +5 -0
- package/dist/terraform/modules/foundation/cognito/variables.tf +24 -12
- package/dist/terraform/modules/thinkwork/README.md +5 -1
- package/dist/terraform/modules/thinkwork/main.tf +376 -374
- package/dist/terraform/modules/thinkwork/outputs.tf +12 -158
- package/dist/terraform/modules/thinkwork/variables.tf +246 -89
- package/dist/workspace-defaults/files/INSTRUCTIONS.md +9 -11
- package/dist/workspace-defaults/files/MEMORY_GUIDE.md +38 -35
- package/dist/workspace-defaults/files/ROUTER.md +1 -1
- package/dist/workspace-defaults/files/TOOLS.md +9 -39
- package/dist/workspace-defaults/files/agents/analyst/INSTRUCTIONS.md +6 -3
- package/dist/workspace-defaults/files/catalog-skills/brain-brief-builder/SKILL.md +165 -0
- package/dist/workspace-defaults/files/catalog-skills/n8n-workflow-operator/SKILL.md +75 -0
- package/dist/workspace-defaults/files/catalog-skills/n8n-workflow-operator/references/mcp-tooling.md +40 -0
- package/dist/workspace-defaults/files/catalog-skills/n8n-workflow-operator/references/validation-and-handoff.md +40 -0
- package/dist/workspace-defaults/files/catalog-skills/n8n-workflow-operator/references/workflow-authoring.md +46 -0
- package/dist/workspace-defaults/files/skills/artifact-builder/references/crm-dashboard.md +1 -1
- package/dist/workspace-defaults/files/skills/document-composer/SKILL.md +22 -3
- package/package.json +1 -1
- package/dist/drizzle/0261_managed_harness_multiplayer.sql +0 -313
- package/dist/drizzle/0262_parallel_harness_threads.sql +0 -9
- package/dist/drizzle/0264_harness_tool_execution_ledger.sql +0 -113
- package/dist/plugins/company-data/README.md +0 -49
- package/dist/plugins/company-data/package.json +0 -21
- package/dist/plugins/company-data/src/index.ts +0 -30
- package/dist/plugins/company-data/src/manifest.ts +0 -26
- package/dist/plugins/company-data/test/manifest.test.ts +0 -116
- package/dist/plugins/company-data/tsconfig.json +0 -8
- package/dist/plugins/company-etl/README.md +0 -46
- package/dist/plugins/company-etl/package.json +0 -21
- package/dist/plugins/company-etl/src/index.ts +0 -29
- package/dist/plugins/company-etl/src/manifest.ts +0 -26
- package/dist/plugins/company-etl/test/manifest.test.ts +0 -108
- package/dist/plugins/company-etl/tsconfig.json +0 -8
- package/dist/plugins/lastmile/README.md +0 -50
- package/dist/plugins/lastmile/package.json +0 -23
- package/dist/plugins/lastmile/smoke/lastmile-plugin-smoke.mjs +0 -661
- package/dist/plugins/lastmile/src/api/tasks-adapter.ts +0 -572
- package/dist/plugins/lastmile/src/discovery.fixture.ts +0 -64
- package/dist/plugins/lastmile/src/index.ts +0 -46
- package/dist/plugins/lastmile/src/manifest.ts +0 -139
- package/dist/plugins/lastmile/test/api/tasks-adapter.test.ts +0 -266
- package/dist/plugins/lastmile/test/discovery.test.ts +0 -88
- package/dist/plugins/lastmile/tsconfig.json +0 -8
- package/dist/plugins/n8n/smoke/n8n-managed-app-smoke.mjs +0 -409
- package/dist/plugins/twenty/smoke/twenty-managed-app-smoke.mjs +0 -359
- package/dist/terraform/modules/app/agentcore-code-interpreter/Dockerfile.sandbox-base +0 -61
- package/dist/terraform/modules/app/agentcore-code-interpreter/sandbox/sitecustomize.py +0 -227
- package/dist/terraform/modules/app/agentcore-code-interpreter/sandbox/test_sitecustomize.py +0 -277
- package/dist/terraform/modules/app/agentcore-code-interpreter/scripts/build_and_push_sandbox_base.sh +0 -70
- package/dist/terraform/modules/app/agentcore-gateway/main.tf +0 -305
- package/dist/terraform/modules/app/agentcore-gateway/outputs.tf +0 -44
- package/dist/terraform/modules/app/agentcore-gateway/scripts/delete_gateway.sh +0 -93
- package/dist/terraform/modules/app/agentcore-gateway/scripts/read_gateway.sh +0 -33
- package/dist/terraform/modules/app/agentcore-gateway/scripts/reconcile_gateway.sh +0 -543
- package/dist/terraform/modules/app/agentcore-gateway/variables.tf +0 -70
- package/dist/terraform/modules/app/agentcore-harness/main.tf +0 -330
- package/dist/terraform/modules/app/agentcore-harness/outputs.tf +0 -72
- package/dist/terraform/modules/app/agentcore-harness/scripts/delete_harness.sh +0 -5
- package/dist/terraform/modules/app/agentcore-harness/scripts/harness-lifecycle.mjs +0 -430
- package/dist/terraform/modules/app/agentcore-harness/scripts/harness-readback.mjs +0 -180
- package/dist/terraform/modules/app/agentcore-harness/scripts/harness-tool-contract.mjs +0 -193
- package/dist/terraform/modules/app/agentcore-harness/scripts/prune_harness.sh +0 -5
- package/dist/terraform/modules/app/agentcore-harness/scripts/read_harness.sh +0 -5
- package/dist/terraform/modules/app/agentcore-harness/scripts/reconcile_harness.sh +0 -5
- package/dist/terraform/modules/app/agentcore-harness/variables.tf +0 -96
- package/dist/terraform/modules/app/hindsight-memory/README.md +0 -89
- package/dist/terraform/modules/app/hindsight-memory/main.tf +0 -411
- package/dist/terraform/modules/app/lambda-api/agentcore-harness-alarms.tf +0 -88
- package/dist/terraform/modules/app/lambda-api/agentcore-identity-alarms.tf +0 -91
- package/dist/terraform/modules/data/bedrock-knowledge-base/main.tf +0 -102
- /package/dist/{plugins/n8n/terraform → terraform/modules/app}/n8n/outputs.tf +0 -0
- /package/dist/{plugins/n8n/terraform → terraform/modules/app}/n8n/scripts/sync-database.py +0 -0
- /package/dist/{plugins/n8n/terraform → terraform/modules/app}/n8n/scripts/test_sync_database.py +0 -0
- /package/dist/{plugins/n8n/terraform → terraform/modules/app}/n8n/variables.tf +0 -0
- /package/dist/{plugins/twenty/terraform → terraform/modules/app}/twenty/README.md +0 -0
- /package/dist/{plugins/twenty/terraform → terraform/modules/app}/twenty/main.tf +0 -0
- /package/dist/{plugins/twenty/terraform → terraform/modules/app}/twenty/outputs.tf +0 -0
- /package/dist/{plugins/twenty/terraform → terraform/modules/app}/twenty/variables.tf +0 -0
|
@@ -81,6 +81,24 @@ variable "plugin_catalog_github_token_secret_arn" {
|
|
|
81
81
|
default = ""
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
+
variable "brain_m2m_platform_agent_secret_arn" {
|
|
85
|
+
description = "Optional Secrets Manager ARN of the Company Brain platform-agent machine-lane secret (Cognito client-credentials blob, THINK-628). When set, the shared API Lambda role may read it so MCP config build can mint short-lived bearers for the Brain connector. Empty leaves the tkt_ lane untouched."
|
|
86
|
+
type = string
|
|
87
|
+
default = ""
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
variable "brain_ops_api_url" {
|
|
91
|
+
description = "Optional Company Brain ops-api base URL for the Send-to-the-Brain flag path (THINK-781). Empty disables the action."
|
|
92
|
+
type = string
|
|
93
|
+
default = ""
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
variable "brain_ops_m2m_secret_arn" {
|
|
97
|
+
description = "Optional Secrets Manager ARN of the Brain agent-identity m2m secret (ops-api operator pool, scope etl-agent/tasks) used by flagThreadToBrain to POST /flags (THINK-781)."
|
|
98
|
+
type = string
|
|
99
|
+
default = ""
|
|
100
|
+
}
|
|
101
|
+
|
|
84
102
|
variable "db_password" {
|
|
85
103
|
description = "Master password for the Aurora cluster"
|
|
86
104
|
type = string
|
|
@@ -93,16 +111,16 @@ variable "database_engine" {
|
|
|
93
111
|
default = "aurora-serverless"
|
|
94
112
|
}
|
|
95
113
|
|
|
96
|
-
variable "hindsight_database_name" {
|
|
97
|
-
description = "Dedicated Hindsight database name (THINK-220 cutover flag). Empty keeps Hindsight in the hindsight schema of the primary database."
|
|
98
|
-
type = string
|
|
99
|
-
default = ""
|
|
100
|
-
}
|
|
101
|
-
|
|
102
114
|
variable "enable_hindsight" {
|
|
103
|
-
description = "
|
|
115
|
+
description = "DEPRECATED (THINK-407): the Hindsight memory engine and its infrastructure were removed; this input is inert and ignored. Retained so existing tfvars keep working."
|
|
104
116
|
type = bool
|
|
105
|
-
default =
|
|
117
|
+
default = false
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
variable "external_kb_source_arns" {
|
|
121
|
+
description = "DEPRECATED (THINK-402): Knowledge Bases were removed from the product; this input is inert and ignored. Retained so existing tfvars keep working."
|
|
122
|
+
type = list(string)
|
|
123
|
+
default = []
|
|
106
124
|
}
|
|
107
125
|
|
|
108
126
|
variable "enable_capability_broker" {
|
|
@@ -111,6 +129,18 @@ variable "enable_capability_broker" {
|
|
|
111
129
|
default = false
|
|
112
130
|
}
|
|
113
131
|
|
|
132
|
+
variable "auth_state_store" {
|
|
133
|
+
description = "THINK-643: backing store for short-lived auth-flow state (AppSync subscription tickets + connect rate-limit counters). \"postgres\" (default) keeps the Aurora auth_subscription_tickets path; \"dynamo\" provisions thinkwork-<stage>-auth-state and points the auth handlers at it. Ship-inert: dev opts in via the deploy workflow, customer stages on their own cadence."
|
|
134
|
+
type = string
|
|
135
|
+
default = "postgres"
|
|
136
|
+
|
|
137
|
+
validation {
|
|
138
|
+
condition = contains(["postgres", "dynamo"], var.auth_state_store)
|
|
139
|
+
error_message = "auth_state_store must be \"postgres\" or \"dynamo\"."
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
|
|
114
144
|
variable "enable_agentcore_multiplayer_proof" {
|
|
115
145
|
description = "Opt in to the non-production THINK-316 AgentCore Identity/Gateway proof substrate."
|
|
116
146
|
type = bool
|
|
@@ -141,14 +171,44 @@ variable "agentcore_turn_assertion_active_key_version" {
|
|
|
141
171
|
default = "v1"
|
|
142
172
|
}
|
|
143
173
|
|
|
144
|
-
variable "
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
174
|
+
variable "neptune_endpoint" {
|
|
175
|
+
type = string
|
|
176
|
+
default = ""
|
|
177
|
+
description = "Company Brain twin: Neptune writer endpoint (etl-platform neptune stack output; empty = twin disabled)"
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
variable "brain_mcp_url" {
|
|
181
|
+
type = string
|
|
182
|
+
default = ""
|
|
183
|
+
description = "Platform-served Brain MCP endpoint (consolidation U14); empty = legacy product-served /mcp/twin"
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
variable "neptune_cluster_resource_id" {
|
|
187
|
+
type = string
|
|
188
|
+
default = ""
|
|
189
|
+
description = "Company Brain twin: Neptune cluster resource id for IAM ARNs"
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
variable "neptune_client_security_group_id" {
|
|
193
|
+
type = string
|
|
194
|
+
default = ""
|
|
195
|
+
description = "Company Brain twin: neptune-client SG id for the identity-graph-projector"
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
variable "neptune_load_bucket" {
|
|
199
|
+
type = string
|
|
200
|
+
default = ""
|
|
201
|
+
description = "Company Brain twin: Neptune bulk-load staging bucket (empty = bulk-rebuild disabled)"
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
variable "neptune_loader_role_arn" {
|
|
205
|
+
type = string
|
|
206
|
+
default = ""
|
|
207
|
+
description = "Company Brain twin: IAM role the Neptune cluster assumes to read the load bucket"
|
|
148
208
|
}
|
|
149
209
|
|
|
150
210
|
variable "memory_engine" {
|
|
151
|
-
description = "
|
|
211
|
+
description = "DEPRECATED (THINK-407): AgentCore managed memory is the only engine; this input is inert and ignored. Retained so existing tfvars keep working."
|
|
152
212
|
type = string
|
|
153
213
|
default = ""
|
|
154
214
|
}
|
|
@@ -158,6 +218,12 @@ variable "twenty_provisioned" {
|
|
|
158
218
|
default = false
|
|
159
219
|
}
|
|
160
220
|
|
|
221
|
+
variable "release_image_mirror_principal_arns" {
|
|
222
|
+
description = "IAM principals allowed to push release runtime images into this stage's AgentCore ECR repository (THINK-616). ThinkWork-operated customer stages set [\"arn:aws:iam::487219502366:root\"] so the release workflow can mirror `<releaseVersion>-pi-arm64`; leave empty for self-hosted deployments."
|
|
223
|
+
type = list(string)
|
|
224
|
+
default = []
|
|
225
|
+
}
|
|
226
|
+
|
|
161
227
|
variable "twenty_runtime_enabled" {
|
|
162
228
|
description = "Run Twenty CRM server/worker tasks when the retained substrate is provisioned."
|
|
163
229
|
type = bool
|
|
@@ -358,6 +424,24 @@ variable "tenant_entra_connections" {
|
|
|
358
424
|
default = []
|
|
359
425
|
}
|
|
360
426
|
|
|
427
|
+
variable "console_client_enabled" {
|
|
428
|
+
description = "Create the optional Company Brain console Cognito app client (U13). Default false = ship-inert."
|
|
429
|
+
type = bool
|
|
430
|
+
default = false
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
variable "console_callback_urls" {
|
|
434
|
+
description = "OAuth callback URLs for the console client — must include the console hosting URL BEFORE first login (redirect_mismatch otherwise)"
|
|
435
|
+
type = list(string)
|
|
436
|
+
default = []
|
|
437
|
+
}
|
|
438
|
+
|
|
439
|
+
variable "console_logout_urls" {
|
|
440
|
+
description = "OAuth logout URLs for the console client"
|
|
441
|
+
type = list(string)
|
|
442
|
+
default = []
|
|
443
|
+
}
|
|
444
|
+
|
|
361
445
|
variable "pre_signup_lambda_zip" {
|
|
362
446
|
description = "Path to the Cognito pre-signup Lambda zip"
|
|
363
447
|
type = string
|
|
@@ -437,6 +521,41 @@ variable "platform_operator_emails" {
|
|
|
437
521
|
default = ""
|
|
438
522
|
}
|
|
439
523
|
|
|
524
|
+
# THINK-583 U3 — provisioned concurrency for chat-agent-invoke /
|
|
525
|
+
# workspace-renderer (KTD5: never the Pi Lambda). Default 0 = disabled;
|
|
526
|
+
# the `live` alias always exists so alias-qualified invokers work either
|
|
527
|
+
# way. Dev sets 1/1 via scripts/deploy/terraform-vars.sh; customer stages
|
|
528
|
+
# opt in through their runner-secrets tfvars on their release cadence.
|
|
529
|
+
|
|
530
|
+
variable "agentcore_runtime_dispatch_enabled" {
|
|
531
|
+
description = "THINK-585 U6: stage kill-switch for AgentCore Runtime chat dispatch."
|
|
532
|
+
type = bool
|
|
533
|
+
default = false
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
variable "agentcore_session_scope" {
|
|
537
|
+
description = "THINK-909/THINK-946 AgentCore runtime session scope. \"thread\" (default) keys the runtime session per thread; \"user\" keys it per (tenant, agent, user) so a user's NEW thread lands on their already-warm microVM and reuses its MCP connections and toolset. Set \"user\" only after the stage's Pi runtime image dual-accepts both session ids. mcpherson runs \"user\"; every other stage runs the default."
|
|
538
|
+
type = string
|
|
539
|
+
default = "thread"
|
|
540
|
+
|
|
541
|
+
validation {
|
|
542
|
+
condition = contains(["thread", "user"], var.agentcore_session_scope)
|
|
543
|
+
error_message = "agentcore_session_scope must be \"thread\" or \"user\"."
|
|
544
|
+
}
|
|
545
|
+
}
|
|
546
|
+
|
|
547
|
+
variable "chat_agent_invoke_provisioned_concurrency" {
|
|
548
|
+
description = "Provisioned concurrency on chat-agent-invoke's `live` alias. 0 = disabled (alias still exists)."
|
|
549
|
+
type = number
|
|
550
|
+
default = 0
|
|
551
|
+
}
|
|
552
|
+
|
|
553
|
+
variable "workspace_renderer_provisioned_concurrency" {
|
|
554
|
+
description = "Provisioned concurrency on workspace-renderer's `live` alias. 0 = disabled (alias still exists)."
|
|
555
|
+
type = number
|
|
556
|
+
default = 0
|
|
557
|
+
}
|
|
558
|
+
|
|
440
559
|
variable "www_domain" {
|
|
441
560
|
description = "Public website apex domain (e.g. thinkwork.ai). Leave empty to skip the custom domain and DNS wiring."
|
|
442
561
|
type = string
|
|
@@ -473,21 +592,6 @@ variable "stripe_price_ids_json" {
|
|
|
473
592
|
default = "{}"
|
|
474
593
|
}
|
|
475
594
|
|
|
476
|
-
variable "wiki_compile_model_id" {
|
|
477
|
-
description = <<-EOT
|
|
478
|
-
Bedrock model id the wiki-compile Lambda uses for the leaf planner,
|
|
479
|
-
aggregation planner, and section writer. Any Converse-compatible
|
|
480
|
-
model works; change without a code deploy.
|
|
481
|
-
|
|
482
|
-
Default: openai.gpt-oss-120b-1:0 (strong output quality at a lower
|
|
483
|
-
per-minute throttle risk than Claude Haiku 4.5 on shared dev
|
|
484
|
-
accounts). Swap to us.anthropic.claude-haiku-4-5-20251001-v1:0 for
|
|
485
|
-
Claude, or amazon.nova-micro-v1:0 for a low-cost spike.
|
|
486
|
-
EOT
|
|
487
|
-
type = string
|
|
488
|
-
default = "openai.gpt-oss-120b-1:0"
|
|
489
|
-
}
|
|
490
|
-
|
|
491
595
|
variable "requester_idle_memory_learning_enabled" {
|
|
492
596
|
description = "Enable requester-scoped 15-minute idle memory learning."
|
|
493
597
|
type = bool
|
|
@@ -528,14 +632,20 @@ variable "brain_source_agent_model_id" {
|
|
|
528
632
|
default = "us.anthropic.claude-haiku-4-5-20251001-v1:0"
|
|
529
633
|
}
|
|
530
634
|
|
|
531
|
-
variable "
|
|
532
|
-
description = "Enable the
|
|
635
|
+
variable "identity_drift_match_enabled" {
|
|
636
|
+
description = "Enable the recurring per-tenant identity drift match sweep (THINK-321 U7/KTD-7 — R10). Ships disabled; enabled per stage once bootstrap matching has been proven there."
|
|
533
637
|
type = bool
|
|
534
638
|
default = false
|
|
535
639
|
}
|
|
536
640
|
|
|
537
|
-
variable "
|
|
538
|
-
description = "
|
|
641
|
+
variable "vpc_interface_endpoint_services" {
|
|
642
|
+
description = "AWS services that get a private interface endpoint (null = legacy full set, [] = none). See modules/thinkwork. Cost review 2026-08-28."
|
|
643
|
+
type = list(string)
|
|
644
|
+
default = null
|
|
645
|
+
}
|
|
646
|
+
|
|
647
|
+
variable "vpc_interface_endpoint_single_az" {
|
|
648
|
+
description = "One ENI per interface endpoint instead of one per AZ. Cost review 2026-08-28."
|
|
539
649
|
type = bool
|
|
540
650
|
default = false
|
|
541
651
|
}
|
|
@@ -551,23 +661,6 @@ variable "wiki_source" {
|
|
|
551
661
|
}
|
|
552
662
|
}
|
|
553
663
|
|
|
554
|
-
variable "analyst_policy_source" {
|
|
555
|
-
description = "THINK-229 KTD5 enforcement flip for the analyst connection policy source: 'row' (default — signed sidecar policy is shadow-only) or 'sidecar' (the sidecar block is authoritative). Flip only after clean shadow parity on live traffic."
|
|
556
|
-
type = string
|
|
557
|
-
default = "row"
|
|
558
|
-
|
|
559
|
-
validation {
|
|
560
|
-
condition = contains(["row", "sidecar"], var.analyst_policy_source)
|
|
561
|
-
error_message = "analyst_policy_source must be 'row' or 'sidecar'."
|
|
562
|
-
}
|
|
563
|
-
}
|
|
564
|
-
|
|
565
|
-
variable "capability_self_extension_tenants" {
|
|
566
|
-
description = "Governed autonomy opt-in: comma/space-separated tenant ids allowed to autonomously self-extend capabilities (self_admit_connection / self_approve_routine). Empty (default) = NO tenant enabled; self-extension ships inert and fail-closed."
|
|
567
|
-
type = string
|
|
568
|
-
default = ""
|
|
569
|
-
}
|
|
570
|
-
|
|
571
664
|
variable "wiki_aggregation_pass_enabled" {
|
|
572
665
|
description = <<-EOT
|
|
573
666
|
Feature flag for the wiki aggregation pass — the second LLM call
|
|
@@ -582,23 +675,6 @@ variable "wiki_aggregation_pass_enabled" {
|
|
|
582
675
|
default = "true"
|
|
583
676
|
}
|
|
584
677
|
|
|
585
|
-
variable "google_places_api_key" {
|
|
586
|
-
description = <<-EOT
|
|
587
|
-
Google Places API (New) key used by wiki-compile to enrich POI records
|
|
588
|
-
with city/state/country hierarchy during compile. When empty, compile
|
|
589
|
-
gracefully degrades to metadata-only place rows (no hierarchy, no
|
|
590
|
-
backing pages), so this is opt-in. Stored as a SecureString at
|
|
591
|
-
/thinkwork/<stage>/google-places/api-key — see
|
|
592
|
-
terraform/modules/app/lambda-api/handlers.tf for the SSM resource.
|
|
593
|
-
|
|
594
|
-
The parameter's value has lifecycle.ignore_changes set, so you can
|
|
595
|
-
rotate via `aws ssm put-parameter --overwrite` without terraform
|
|
596
|
-
fighting you on the next apply.
|
|
597
|
-
EOT
|
|
598
|
-
type = string
|
|
599
|
-
default = ""
|
|
600
|
-
sensitive = true
|
|
601
|
-
}
|
|
602
678
|
|
|
603
679
|
variable "mapbox_public_token" {
|
|
604
680
|
description = <<-EOT
|
|
@@ -678,6 +754,30 @@ variable "customer_domain" {
|
|
|
678
754
|
default = ""
|
|
679
755
|
}
|
|
680
756
|
|
|
757
|
+
variable "deployment_runner_in_vpc" {
|
|
758
|
+
description = "Run the deployment runner CodeBuild inside the VPC and grant it tcp/5432 on the database security group instead of relying on the world-open DB ingress (THINK-1082). Also turns on the VPC NAT gateway. Default false = no networking change."
|
|
759
|
+
type = bool
|
|
760
|
+
default = false
|
|
761
|
+
}
|
|
762
|
+
|
|
763
|
+
variable "api_lambdas_in_vpc" {
|
|
764
|
+
description = "Run every database-connected Lambda (api handlers, agentcore-admin, Pi, broker) inside the VPC behind the api-lambda security group, granted tcp/5432 on the database security group (THINK-1082). Also turns on the VPC NAT gateway. Default false = no networking change."
|
|
765
|
+
type = bool
|
|
766
|
+
default = false
|
|
767
|
+
}
|
|
768
|
+
|
|
769
|
+
variable "db_publicly_accessible" {
|
|
770
|
+
description = "Aurora publicly_accessible (THINK-1082). Default true. Set false only after api_lambdas_in_vpc and deployment_runner_in_vpc are live."
|
|
771
|
+
type = bool
|
|
772
|
+
default = true
|
|
773
|
+
}
|
|
774
|
+
|
|
775
|
+
variable "db_public_ingress_cidrs" {
|
|
776
|
+
description = "tcp/5432 CIDR ingress seeded on a NEW database security group (THINK-1082). Default [\"0.0.0.0/0\"]; [] = none. Does not revoke a live rule — see modules/app/deployment-control-plane/README.md."
|
|
777
|
+
type = list(string)
|
|
778
|
+
default = ["0.0.0.0/0"]
|
|
779
|
+
}
|
|
780
|
+
|
|
681
781
|
variable "customer_domain_delegated" {
|
|
682
782
|
description = "Set true once the apex zone's NS records point at the customer zone (claim tool phase two). Gates the ACM certificate, the web alias records, and the customer-domain Cognito callback entries. Requires customer_domain."
|
|
683
783
|
type = bool
|
|
@@ -690,9 +790,20 @@ variable "customer_domain_legacy_retired" {
|
|
|
690
790
|
default = false
|
|
691
791
|
}
|
|
692
792
|
|
|
793
|
+
variable "additional_admin_callback_urls" {
|
|
794
|
+
description = "Extra OAuth callback URLs appended to the web-family Cognito clients (e.g. a hosted Company Brain console origin). Supply both the bare origin and its /auth/callback variant. Empty leaves behavior unchanged."
|
|
795
|
+
type = list(string)
|
|
796
|
+
default = []
|
|
797
|
+
}
|
|
798
|
+
|
|
799
|
+
variable "additional_admin_logout_urls" {
|
|
800
|
+
description = "Extra OAuth logout URLs appended to the web-family Cognito clients (companion to additional_admin_callback_urls)."
|
|
801
|
+
type = list(string)
|
|
802
|
+
default = []
|
|
803
|
+
}
|
|
804
|
+
|
|
693
805
|
locals {
|
|
694
806
|
www_dns_enabled = var.www_domain != "" && var.cloudflare_zone_id != ""
|
|
695
|
-
docs_domain = var.www_domain != "" ? "docs.${var.www_domain}" : ""
|
|
696
807
|
app_domain = var.www_domain != "" ? "app.${var.www_domain}" : ""
|
|
697
808
|
computer_domain = var.www_domain != "" ? "computer.${var.www_domain}" : ""
|
|
698
809
|
sandbox_domain = var.www_domain != "" ? "sandbox.${var.www_domain}" : ""
|
|
@@ -853,19 +964,29 @@ module "thinkwork" {
|
|
|
853
964
|
account_id = var.account_id
|
|
854
965
|
|
|
855
966
|
plugin_catalog_github_token_secret_arn = var.plugin_catalog_github_token_secret_arn
|
|
967
|
+
brain_m2m_platform_agent_secret_arn = var.brain_m2m_platform_agent_secret_arn
|
|
968
|
+
brain_ops_api_url = var.brain_ops_api_url
|
|
969
|
+
brain_ops_m2m_secret_arn = var.brain_ops_m2m_secret_arn
|
|
856
970
|
|
|
857
971
|
db_password = var.db_password
|
|
858
972
|
database_engine = var.database_engine
|
|
859
973
|
enable_hindsight = var.enable_hindsight
|
|
974
|
+
external_kb_source_arns = var.external_kb_source_arns
|
|
860
975
|
enable_capability_broker = var.enable_capability_broker
|
|
976
|
+
auth_state_store = var.auth_state_store
|
|
861
977
|
enable_agentcore_multiplayer_proof = var.enable_agentcore_multiplayer_proof
|
|
862
978
|
agentcore_multiplayer_proof_tenant_slug = var.agentcore_multiplayer_proof_tenant_slug
|
|
863
979
|
agentcore_multiplayer_proof_owner_allowlist = var.agentcore_multiplayer_proof_owner_allowlist
|
|
864
980
|
agentcore_turn_assertion_key_versions = var.agentcore_turn_assertion_key_versions
|
|
865
981
|
agentcore_turn_assertion_active_key_version = var.agentcore_turn_assertion_active_key_version
|
|
866
|
-
|
|
867
|
-
|
|
982
|
+
neptune_endpoint = var.neptune_endpoint
|
|
983
|
+
brain_mcp_url = var.brain_mcp_url
|
|
984
|
+
neptune_cluster_resource_id = var.neptune_cluster_resource_id
|
|
985
|
+
neptune_client_security_group_id = var.neptune_client_security_group_id
|
|
986
|
+
neptune_load_bucket = var.neptune_load_bucket
|
|
987
|
+
neptune_loader_role_arn = var.neptune_loader_role_arn
|
|
868
988
|
memory_engine = var.memory_engine
|
|
989
|
+
release_image_mirror_principal_arns = var.release_image_mirror_principal_arns
|
|
869
990
|
twenty_provisioned = var.twenty_provisioned
|
|
870
991
|
twenty_runtime_enabled = var.twenty_runtime_enabled
|
|
871
992
|
twenty_image_uri = var.twenty_image_uri
|
|
@@ -899,6 +1020,9 @@ module "thinkwork" {
|
|
|
899
1020
|
microsoft_oauth_client_secret = var.microsoft_oauth_client_secret
|
|
900
1021
|
microsoft_oauth_tenant = var.microsoft_oauth_tenant
|
|
901
1022
|
tenant_entra_connections = var.tenant_entra_connections
|
|
1023
|
+
console_client_enabled = var.console_client_enabled
|
|
1024
|
+
console_callback_urls = var.console_callback_urls
|
|
1025
|
+
console_logout_urls = var.console_logout_urls
|
|
902
1026
|
pre_signup_lambda_zip = var.pre_signup_lambda_zip
|
|
903
1027
|
auth_retirement_phase = var.auth_retirement_phase
|
|
904
1028
|
auth_migration_recovery_deadline = var.auth_migration_recovery_deadline
|
|
@@ -910,17 +1034,15 @@ module "thinkwork" {
|
|
|
910
1034
|
enable_workspace_orchestration = var.enable_workspace_orchestration
|
|
911
1035
|
api_auth_secret = var.api_auth_secret
|
|
912
1036
|
platform_operator_emails = var.platform_operator_emails
|
|
1037
|
+
agentcore_runtime_dispatch_enabled = var.agentcore_runtime_dispatch_enabled
|
|
1038
|
+
agentcore_session_scope = var.agentcore_session_scope
|
|
1039
|
+
chat_agent_invoke_provisioned_concurrency = var.chat_agent_invoke_provisioned_concurrency
|
|
1040
|
+
workspace_renderer_provisioned_concurrency = var.workspace_renderer_provisioned_concurrency
|
|
913
1041
|
|
|
914
1042
|
# Public website custom domain (optional — wired only when www_domain is set)
|
|
915
1043
|
www_domain = var.www_domain
|
|
916
1044
|
www_certificate_arn = local.www_dns_enabled ? module.www_dns[0].certificate_arn : ""
|
|
917
1045
|
|
|
918
|
-
# Docs site custom domain (derived from www_domain — docs.<apex>). The
|
|
919
|
-
# same ACM cert covers apex + www + docs + app/computer so every distribution
|
|
920
|
-
# shares it.
|
|
921
|
-
docs_domain = local.www_dns_enabled ? local.docs_domain : ""
|
|
922
|
-
docs_certificate_arn = local.www_dns_enabled ? module.www_dns[0].certificate_arn : ""
|
|
923
|
-
|
|
924
1046
|
# End-user app custom domain (derived from www_domain — app.<apex>).
|
|
925
1047
|
# Same ACM cert covers it via the include_app SAN gate on www_dns.
|
|
926
1048
|
app_domain = local.www_dns_enabled ? local.app_domain : ""
|
|
@@ -934,7 +1056,7 @@ module "thinkwork" {
|
|
|
934
1056
|
|
|
935
1057
|
# Computer iframe sandbox (derived from www_domain — sandbox.<apex>).
|
|
936
1058
|
# Uses its own ACM certificate so sandbox bootstrap/rotation cannot replace
|
|
937
|
-
# the shared apex/www/
|
|
1059
|
+
# the shared apex/www/app/computer/api certificate.
|
|
938
1060
|
computer_sandbox_domain = local.www_dns_enabled ? local.sandbox_domain : ""
|
|
939
1061
|
computer_sandbox_certificate_arn = local.www_dns_enabled ? aws_acm_certificate_validation.computer_sandbox[0].certificate_arn : ""
|
|
940
1062
|
computer_sandbox_allowed_parent_origins = local.www_dns_enabled ? "https://${local.app_domain}" : ""
|
|
@@ -947,16 +1069,13 @@ module "thinkwork" {
|
|
|
947
1069
|
# Wiki compile Lambda config. Pinned so unrelated terraform applies
|
|
948
1070
|
# don't wipe the Bedrock model or the aggregation flag back to
|
|
949
1071
|
# whatever the Lambda env defaults to.
|
|
950
|
-
wiki_compile_model_id = var.wiki_compile_model_id
|
|
951
1072
|
brain_source_agent_model_id = var.brain_source_agent_model_id
|
|
952
1073
|
wiki_aggregation_pass_enabled = var.wiki_aggregation_pass_enabled
|
|
953
1074
|
wiki_source = var.wiki_source
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
ontology_scan_sweep_enabled = var.ontology_scan_sweep_enabled
|
|
1075
|
+
vpc_interface_endpoint_services = var.vpc_interface_endpoint_services
|
|
1076
|
+
vpc_interface_endpoint_single_az = var.vpc_interface_endpoint_single_az
|
|
1077
|
+
identity_drift_match_enabled = var.identity_drift_match_enabled
|
|
958
1078
|
wiki_deterministic_linking_enabled = var.wiki_deterministic_linking_enabled
|
|
959
|
-
google_places_api_key = var.google_places_api_key
|
|
960
1079
|
requester_idle_memory_learning_enabled = var.requester_idle_memory_learning_enabled
|
|
961
1080
|
requester_memory_dreaming_enabled = var.requester_memory_dreaming_enabled
|
|
962
1081
|
requester_memory_dreaming_schedule_expression = var.requester_memory_dreaming_schedule_expression
|
|
@@ -985,11 +1104,21 @@ module "thinkwork" {
|
|
|
985
1104
|
customer_domain_delegated = var.customer_domain_delegated
|
|
986
1105
|
customer_domain_legacy_retired = var.customer_domain_legacy_retired
|
|
987
1106
|
|
|
1107
|
+
# Deployment runner / API Lambdas inside the VPC + database exposure (THINK-1082)
|
|
1108
|
+
# — see modules/app/deployment-control-plane/README.md, "Closing the database port".
|
|
1109
|
+
deployment_runner_in_vpc = var.deployment_runner_in_vpc
|
|
1110
|
+
api_lambdas_in_vpc = var.api_lambdas_in_vpc
|
|
1111
|
+
db_publicly_accessible = var.db_publicly_accessible
|
|
1112
|
+
db_public_ingress_cidrs = var.db_public_ingress_cidrs
|
|
1113
|
+
|
|
1114
|
+
additional_admin_callback_urls = var.additional_admin_callback_urls
|
|
1115
|
+
additional_admin_logout_urls = var.additional_admin_logout_urls
|
|
1116
|
+
|
|
988
1117
|
# Greenfield: create everything (all defaults are true)
|
|
989
1118
|
}
|
|
990
1119
|
|
|
991
1120
|
################################################################################
|
|
992
|
-
# Public Website DNS (Cloudflare zone, ACM cert, www→apex redirect
|
|
1121
|
+
# Public Website DNS (Cloudflare zone, ACM cert, www→apex redirect)
|
|
993
1122
|
################################################################################
|
|
994
1123
|
|
|
995
1124
|
module "www_dns" {
|
|
@@ -1001,12 +1130,10 @@ module "www_dns" {
|
|
|
1001
1130
|
cloudflare_zone_id = var.cloudflare_zone_id
|
|
1002
1131
|
cloudfront_domain_name = module.thinkwork.www_distribution_domain
|
|
1003
1132
|
|
|
1004
|
-
#
|
|
1005
|
-
#
|
|
1006
|
-
#
|
|
1007
|
-
|
|
1008
|
-
include_docs = true
|
|
1009
|
-
docs_cloudfront_domain_name = module.thinkwork.docs_distribution_domain
|
|
1133
|
+
# This stack predates THINK-702, so the shared cert still carries the
|
|
1134
|
+
# retired docs.<domain> SAN. Dropping it would force a cert replacement
|
|
1135
|
+
# that cycles against the thinkwork module — keep the dead SAN instead.
|
|
1136
|
+
retain_docs_san = true
|
|
1010
1137
|
|
|
1011
1138
|
# End-user app: canonical app.<apex> host. The compatibility output names
|
|
1012
1139
|
# still use computer_* while the source path is apps/web.
|
|
@@ -1154,6 +1281,11 @@ output "mobile_client_id" {
|
|
|
1154
1281
|
value = module.thinkwork.mobile_client_id
|
|
1155
1282
|
}
|
|
1156
1283
|
|
|
1284
|
+
output "console_client_id" {
|
|
1285
|
+
description = "Cognito app client ID for the Company Brain console (null while console_client_enabled = false)"
|
|
1286
|
+
value = module.thinkwork.console_client_id
|
|
1287
|
+
}
|
|
1288
|
+
|
|
1157
1289
|
output "ecr_repository_url" {
|
|
1158
1290
|
description = "ECR repository URL for the AgentCore container"
|
|
1159
1291
|
value = module.thinkwork.ecr_repository_url
|
|
@@ -1179,15 +1311,6 @@ output "database_name" {
|
|
|
1179
1311
|
value = module.thinkwork.database_name
|
|
1180
1312
|
}
|
|
1181
1313
|
|
|
1182
|
-
output "hindsight_enabled" {
|
|
1183
|
-
description = "Whether Hindsight canonical memory is enabled"
|
|
1184
|
-
value = module.thinkwork.hindsight_enabled
|
|
1185
|
-
}
|
|
1186
|
-
|
|
1187
|
-
output "hindsight_endpoint" {
|
|
1188
|
-
description = "Hindsight API endpoint (null when enable_hindsight = false)"
|
|
1189
|
-
value = module.thinkwork.hindsight_endpoint
|
|
1190
|
-
}
|
|
1191
1314
|
output "twenty_provisioned" {
|
|
1192
1315
|
description = "Whether the Twenty CRM retained managed-app substrate is provisioned"
|
|
1193
1316
|
value = module.thinkwork.twenty_provisioned
|
|
@@ -1363,21 +1486,6 @@ output "computer_sandbox_allowed_parent_origins" {
|
|
|
1363
1486
|
value = module.thinkwork.computer_sandbox_allowed_parent_origins
|
|
1364
1487
|
}
|
|
1365
1488
|
|
|
1366
|
-
output "docs_url" {
|
|
1367
|
-
description = "Docs site URL"
|
|
1368
|
-
value = local.www_dns_enabled ? "https://${local.docs_domain}" : "https://${module.thinkwork.docs_distribution_domain}"
|
|
1369
|
-
}
|
|
1370
|
-
|
|
1371
|
-
output "docs_distribution_id" {
|
|
1372
|
-
description = "CloudFront distribution ID for docs (for cache invalidation)"
|
|
1373
|
-
value = module.thinkwork.docs_distribution_id
|
|
1374
|
-
}
|
|
1375
|
-
|
|
1376
|
-
output "docs_bucket_name" {
|
|
1377
|
-
description = "S3 bucket for docs site assets"
|
|
1378
|
-
value = module.thinkwork.docs_bucket_name
|
|
1379
|
-
}
|
|
1380
|
-
|
|
1381
1489
|
output "www_url" {
|
|
1382
1490
|
description = "Public website URL"
|
|
1383
1491
|
value = var.www_domain != "" ? "https://${var.www_domain}" : "https://${module.thinkwork.www_distribution_domain}"
|
|
@@ -1449,67 +1557,17 @@ output "customer_domain_name_servers" {
|
|
|
1449
1557
|
value = module.thinkwork.customer_domain_name_servers
|
|
1450
1558
|
}
|
|
1451
1559
|
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
|
|
1560
|
+
# The original AgentCore Twenty reconciliation marker never owned external
|
|
1561
|
+
# cleanup, but an interrupted local-exec may have left it tainted. Forget it
|
|
1562
|
+
# from state without refresh or destroy provisioners — the child module owns
|
|
1563
|
+
# the replacement idempotent reconciliation marker under a new address. The
|
|
1564
|
+
# managed customer-update root (deployment-control-plane runner) carries the
|
|
1565
|
+
# same block; without it here, a dev push plans a delete the destructive-apply
|
|
1566
|
+
# guard rightly refuses.
|
|
1567
|
+
removed {
|
|
1568
|
+
from = module.thinkwork.module.agentcore_proof_identity.terraform_data.twenty_identity_lifecycle
|
|
1456
1569
|
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
}
|
|
1461
|
-
|
|
1462
|
-
output "agentcore_harness_arn" {
|
|
1463
|
-
description = "Managed tenant/profile AgentCore Harness ARN."
|
|
1464
|
-
value = module.thinkwork.agentcore_harness_arn
|
|
1465
|
-
}
|
|
1466
|
-
|
|
1467
|
-
output "agentcore_harness_endpoint_name" {
|
|
1468
|
-
description = "Named version-pinned managed AgentCore Harness qualifier."
|
|
1469
|
-
value = module.thinkwork.agentcore_harness_endpoint_name
|
|
1470
|
-
}
|
|
1471
|
-
|
|
1472
|
-
output "agentcore_harness_version" {
|
|
1473
|
-
description = "Attested immutable managed AgentCore Harness version."
|
|
1474
|
-
value = module.thinkwork.agentcore_harness_version
|
|
1475
|
-
}
|
|
1476
|
-
|
|
1477
|
-
output "agentcore_harness_status" {
|
|
1478
|
-
description = "Safe managed AgentCore Harness readiness state."
|
|
1479
|
-
value = module.thinkwork.agentcore_harness_status
|
|
1480
|
-
}
|
|
1481
|
-
|
|
1482
|
-
output "agentcore_harness_proof_endpoint_name" {
|
|
1483
|
-
description = "Deprecated: use agentcore_harness_endpoint_name."
|
|
1484
|
-
value = module.thinkwork.agentcore_harness_proof_endpoint_name
|
|
1485
|
-
}
|
|
1486
|
-
|
|
1487
|
-
output "agentcore_harness_proof_version" {
|
|
1488
|
-
description = "Deprecated: use agentcore_harness_version."
|
|
1489
|
-
value = module.thinkwork.agentcore_harness_proof_version
|
|
1490
|
-
}
|
|
1491
|
-
|
|
1492
|
-
output "agentcore_harness_proof_status" {
|
|
1493
|
-
description = "Deprecated: use agentcore_harness_status."
|
|
1494
|
-
value = module.thinkwork.agentcore_harness_proof_status
|
|
1495
|
-
}
|
|
1496
|
-
|
|
1497
|
-
output "agentcore_turn_assertion_issuer" {
|
|
1498
|
-
description = "Proof CUSTOM_JWT issuer used by deployed operator probes."
|
|
1499
|
-
value = module.thinkwork.agentcore_turn_assertion_issuer
|
|
1500
|
-
}
|
|
1501
|
-
|
|
1502
|
-
output "agentcore_harness_audience" {
|
|
1503
|
-
description = "Purpose-bound proof Harness audience."
|
|
1504
|
-
value = module.thinkwork.agentcore_harness_audience
|
|
1505
|
-
}
|
|
1506
|
-
|
|
1507
|
-
output "agentcore_turn_assertion_active_key_arn" {
|
|
1508
|
-
description = "Operator-only active proof signing key ARN."
|
|
1509
|
-
value = module.thinkwork.agentcore_turn_assertion_active_key_arn
|
|
1510
|
-
}
|
|
1511
|
-
|
|
1512
|
-
output "agentcore_turn_assertion_active_kid" {
|
|
1513
|
-
description = "Public JWKS key identifier for the active proof signing key."
|
|
1514
|
-
value = module.thinkwork.agentcore_turn_assertion_active_kid
|
|
1570
|
+
lifecycle {
|
|
1571
|
+
destroy = false
|
|
1572
|
+
}
|
|
1515
1573
|
}
|
|
@@ -13,12 +13,9 @@ account_id = "123456789012" # your AWS account ID
|
|
|
13
13
|
database_engine = "rds-postgres"
|
|
14
14
|
|
|
15
15
|
# Memory:
|
|
16
|
-
#
|
|
17
|
-
#
|
|
18
|
-
#
|
|
19
|
-
# AgentCore-only deployments.
|
|
20
|
-
# enable_hindsight = false
|
|
21
|
-
# memory_engine = "agentcore"
|
|
16
|
+
# Bedrock AgentCore managed memory is the only engine. The legacy
|
|
17
|
+
# `enable_hindsight` / `memory_engine` inputs are deprecated no-ops that are
|
|
18
|
+
# still accepted so old tfvars keep applying.
|
|
22
19
|
|
|
23
20
|
# Managed applications:
|
|
24
21
|
# Twenty CRM is optional. First enable should set both booleans true after
|
|
@@ -74,7 +71,7 @@ db_password = "CHANGE_ME_strong_password_here"
|
|
|
74
71
|
# google_oauth_client_secret = ""
|
|
75
72
|
# microsoft_oauth_client_id = ""
|
|
76
73
|
# microsoft_oauth_client_secret = "" # Supply securely; never commit a real value.
|
|
77
|
-
# microsoft_oauth_tenant = "" # Entra directory GUID
|
|
74
|
+
# microsoft_oauth_tenant = "" # Entra directory GUID, or common/organizations/consumers (Cognito-supported aliases).
|
|
78
75
|
|
|
79
76
|
# Tenant-specific Entra IdPs are reconciled by `thinkwork enterprise
|
|
80
77
|
# identity-provider`; Terraform receives safe provider metadata only.
|
|
@@ -115,7 +112,6 @@ db_password = "CHANGE_ME_strong_password_here"
|
|
|
115
112
|
# --name /thinkwork/<stage>/google-places/api-key --value <KEY>
|
|
116
113
|
# (terraform's lifecycle.ignore_changes on the value keeps your manual
|
|
117
114
|
# value from being overwritten on future applies.)
|
|
118
|
-
# google_places_api_key = ""
|
|
119
115
|
|
|
120
116
|
# Public website (apps/www) custom domain.
|
|
121
117
|
# Leave www_domain empty to skip the custom domain and serve on the raw
|
|
@@ -137,3 +133,11 @@ db_password = "CHANGE_ME_strong_password_here"
|
|
|
137
133
|
# ses_inbound_domain = "agents.thinkwork.ai"
|
|
138
134
|
# ses_parent_domain = "thinkwork.ai"
|
|
139
135
|
# tenant_slugs = ["dev"]
|
|
136
|
+
|
|
137
|
+
# Company Brain platform-agent machine lane (optional, THINK-628/THINK-710).
|
|
138
|
+
# Secrets Manager ARN of etl-platform/brain-mcp/m2m/platform-agent in this
|
|
139
|
+
# account. When set, the shared API Lambda role gets read on it so MCP config
|
|
140
|
+
# build can mint short-lived Cognito bearers for the Brain connector instead
|
|
141
|
+
# of using a stored tkt_ key. Leave empty until the lane's manifest entry is
|
|
142
|
+
# published (see the Brain repo's brain-mcp-m2m-migration runbook).
|
|
143
|
+
# brain_m2m_platform_agent_secret_arn = "arn:aws:secretsmanager:us-east-1:<account-id>:secret:etl-platform/brain-mcp/m2m/platform-agent-XXXXXX"
|