mirror of
https://github.com/turnstonelabs/turnstone.git
synced 2026-08-17 17:41:16 -06:00
2b58c127b1
* Add pluggable storage backend (SQLite + PostgreSQL) and deployment packaging Database abstraction: StorageBackend protocol with 21 methods, SQLAlchemy Core schema, SQLite backend (FTS5), PostgreSQL backend (tsvector/ILIKE), Alembic migrations, singleton registry. memory.py reduced to thin facade. Session.py open_db() calls replaced with generic KV methods. [database] config section with env var support. Deployment: Docker Compose production profile with PostgreSQL, Dockerfile with postgres extras and migration entrypoint, Helm chart with bitnami subcharts, Terraform AWS ECS/Fargate module with RDS + ElastiCache + ALB. 39 new storage tests (934 total). mypy strict clean. Docs and diagrams updated. * Address PR #20 review feedback (16 items) - Backends only call create_all() when Alembic migrations are disabled - Helm configmap uses correct TURNSTONE_DB_BACKEND env var; DB URL constructed via env expansion with secret reference instead of ConfigMap - Migration errors fail fast for PostgreSQL (only non-fatal for SQLite) - save_memory/delete_memory wrapped in exception handling like other facade fns - pool_size passed through from config/env to init_storage() in cli + server - Terraform: DB URL moved to Secrets Manager, auth enabled flag set, optional TLS listeners with certificate_arn, Redis transit encryption on - Docker entrypoint no longer suppresses migration output - Diagram fixes: removed StaticPool claim, removed non-existent migration ref - compose.yaml/README: clarified production profile requires DB env vars
37 lines
673 B
Terraform
37 lines
673 B
Terraform
terraform {
|
|
required_version = ">= 1.5"
|
|
|
|
required_providers {
|
|
aws = {
|
|
source = "hashicorp/aws"
|
|
version = ">= 5.0"
|
|
}
|
|
}
|
|
}
|
|
|
|
provider "aws" {
|
|
region = var.aws_region
|
|
}
|
|
|
|
module "turnstone" {
|
|
source = "../../modules/aws-ecs"
|
|
|
|
vpc_id = var.vpc_id
|
|
private_subnet_ids = var.private_subnet_ids
|
|
public_subnet_ids = var.public_subnet_ids
|
|
|
|
image_repository = var.image_repository
|
|
image_tag = var.image_tag
|
|
|
|
llm_base_url = var.llm_base_url
|
|
openai_api_key = var.openai_api_key
|
|
|
|
environment = var.environment
|
|
name_prefix = var.name_prefix
|
|
auth_token = var.auth_token
|
|
|
|
tags = {
|
|
Example = "aws-ecs-basic"
|
|
}
|
|
}
|