Skip to content

Prerequisites

Before you begin, install and verify the following tools.

Local development

To run AIDLC Collaborative locally, install the following tools.

Tool Version Purpose
Node.js 22 or later Runtime for the frontend and Lambda functions
npm 10 or later Package manager (ships with Node.js)
Git 2.x Repository cloning and branch management for agent execution

Run the following commands to verify your local development environment.

node --version   # Expected output: v22.x or later
npm --version    # Expected output: 10.x or later
git --version    # Expected output: 2.x

AWS deployment

To deploy AIDLC Collaborative to AWS, install the following additional tools. For detailed deployment instructions, see Setup.

Tool Version Purpose
Terraform 1.4 or later Infrastructure provisioning
AWS Command Line Interface (AWS CLI) v2 AWS resource management and credential handling
Docker (default) 20.10 or later Lambda packaging and container builds; alternatives use the override documented below

Run the following commands to confirm the default Docker-based deployment tools are installed. If you use an alternative container runtime, follow the section below instead of the Docker verification command.

terraform --version  # Expected output: v1.4 or later
aws --version        # Expected output: aws-cli/2.x
docker --version     # Expected output: Docker version 20.10 or later

Using an alternative container runtime

Docker is the default container runtime; no configuration is needed when its standard socket is available. DOCKER_HOST selects the Docker Engine API socket that Terraform's kreuzwerker/docker provider connects to when it builds and pushes the container images. The installer does not invoke or require a container-runtime CLI.

Because the image build talks to the Docker Engine API socket (rather than shelling out to a CLI), any runtime that exposes such a socket works. Point DOCKER_HOST at the runtime's socket and the build behaves exactly as it does with Docker.

Runtime Docker API socket Status
Docker (default) standard /var/run/docker.sock Supported
Podman derived at runtime (see below) Verified end-to-end
Rancher Desktop (dockerd/moby mode) ~/.rd/docker.sock Verified end-to-end
Colima ~/.colima/default/docker.sock Compatible (same mechanism)
OrbStack ~/.orbstack/run/docker.sock Compatible (same mechanism)

Podman example:

# macOS
podman machine start
export DOCKER_HOST="unix://$(podman machine inspect --format '{{.ConnectionInfo.PodmanSocket.Path}}')"

# Rootless Linux (after starting `podman system service`)
export DOCKER_HOST="unix://$(podman info --format '{{.Host.RemoteSocket.Path}}')"

Rancher Desktop example (set the container engine to dockerd (moby) in Rancher Desktop settings):

export DOCKER_HOST="unix://$HOME/.rd/docker.sock"

Finch and CLI-only build tools are not supported

Finch does not expose a Docker Engine API socket by default, so there is no socket for DOCKER_HOST to use and the Terraform image build cannot run. The same applies to daemonless/CLI-only build tools such as Buildah, nerdctl, Kaniko, and BuildKit. Use Docker, Podman, or another socket-based runtime from the table above.

You must also have an AWS account with permissions to manage the following services.

Category Services
Compute AWS Lambda, Amazon ECS with Fargate (Yjs collaboration server), Amazon Bedrock AgentCore (agent runtime)
Networking Amazon VPC, Amazon API Gateway (REST and WebSocket), Amazon CloudFront, Elastic Load Balancing
Storage Amazon S3, Amazon DynamoDB, Amazon Neptune
Security Amazon Cognito, AWS Identity and Access Management (IAM), AWS KMS, AWS Secrets Manager, AWS Systems Manager Parameter Store
Integration Amazon Elastic Container Registry (Amazon ECR)
Observability Amazon CloudWatch Logs

Optional tools

The following are optional. Set them up to enable additional features.

Item Purpose
AWS credentials Required for large language model (LLM) features through Amazon Bedrock
Provider OAuth apps GitHub / GitLab / Jira Cloud OAuth apps enable code-host and tracker integration — see Setup → Configure provider OAuth apps
Custom domain An ACM certificate in us-east-1 covering the hostname, or a Route53 hosted zone for Terraform to request one — see Setup → Custom domain
Enterprise SSO An OIDC/SAML application in the external IdP and, for OIDC, a Secrets Manager client secret — see Enterprise SSO

Agent authentication

Agents authenticate using API keys configured through the platform UI. The platform supports two options:

An agent CLI cannot reach its model until an effective credential is configured — the Bedrock AgentCore runtime has no IAM-role fallback. A user can provide a personal credential in Account Settings, a space owner/admin can provide a shared credential in Space Settings → Agent, or a platform admin can provide a fallback in Admin → Agents. Resolution is independent per provider and follows personal > space > platform.

Kiro CLI API key (required for the Kiro CLI driver)

Kiro API keys are turned off by default. A Kiro administrator must first enable them in the Kiro console (Settings → Kiro settings → Enable users to generate API keys → On). Users can then sign in to the Kiro portal and generate a key. See the Kiro API keys documentation for details.

Save the key as the Kiro API Key at the intended personal, space, or platform scope. AgentCore resolves the selected opaque binding for each invocation and provides the value to Kiro as KIRO_API_KEY.

Amazon Bedrock API key (required for Claude Code, OpenCode, and Codex setups)

Generate an Amazon Bedrock API key in the AWS Console (Amazon Bedrock → API keys → Generate long-term API key, scoped to your account and region). Save it as the Bedrock Bearer Token at the intended personal, space, or platform scope. AgentCore injects the selected value for that invocation as AWS_BEARER_TOKEN_BEDROCK.

This token is required for Claude Code, OpenCode, and Codex agents: the Bedrock AgentCore runtime's IAM role intentionally has no Amazon Bedrock model-invocation permissions, so there is no IAM-role fallback. Agents authenticate to Bedrock exclusively through this token.

For Codex, additionally enable access to the OpenAI models (openai.gpt-5.*) in the Bedrock console for your Region — Codex uses Bedrock's OpenAI-compatible Responses API, and the models are Region-limited. See Use Codex with Amazon Bedrock. (GPT models are also available through Kiro, but Kiro accesses them via its own API key — no Bedrock model access is involved there.)

Where these values are stored

All credentials are stored in AWS Systems Manager Parameter Store as SecureString parameters:

  • Platform: /<project_name>/<environment>/<credential-name>
  • Space: /<project_name>/<environment>/projects/<project-id>/agent-credentials/<credential-name>
  • Personal: /<project_name>/<environment>/users/<user-id>/agent-credentials/<credential-name>

The credential name is bedrock-bearer-token or kiro-api-key. An unset platform credential holds the literal value placeholder, which the platform treats as "not configured"; clearing a space or personal credential deletes that scoped parameter so resolution can fall through.

AWS credentials for deployment

AIDLC Collaborative infrastructure still requires valid AWS credentials for deployment and AWS resource management. Agent CLI model calls do not use ambient AWS credentials; they use the effective Kiro or Bedrock key selected through the hierarchy above.

Without an effective agent credential, users can still browse the application and edit draft intents, but credential-backed AI composition, Quorum assists, and intent start are unavailable.

KMS permissions for infrastructure encryption

The example tfvars leaves kms_key_arn empty. DynamoDB remains encrypted at rest with the AWS-owned key, and the deployment principal does not need KMS administration permissions.

To use a customer-managed key for DynamoDB, supply its full key ARN in kms_key_arn. The key must be managed outside this Terraform stack. Its key policy must enable IAM authorization for the deployment account (or directly authorize the principals below); an explicit service-principal grant to DynamoDB alone is not sufficient.

The deployment principal needs kms:DescribeKey, kms:Encrypt, kms:Decrypt, kms:ReEncrypt*, kms:GenerateDataKey*, and kms:CreateGrant on the key so Terraform can enable encryption and DynamoDB can establish its resource grants. Application roles receive the same key-scoped permissions from this stack only through DynamoDB (kms:ViaService), with kms:CreateGrant additionally restricted by kms:GrantIsForAWSResource. For a cross-account key policy that does not delegate to account IAM, directly authorize both the deployment principal and the generated application role ARNs.