foundry-rs 0.3.4

Configuration-driven REST backend library for Rust with PostgreSQL — define schemas, tables, and APIs in JSON, get a production-grade REST service.
Documentation
# Copy to .env and adjust. The example server loads .env at startup.
DATABASE_URL=postgres://localhost/architect
# Schema where _sys_* config tables live (default: architect). Must be a valid PostgreSQL identifier.
# ARCHITECT_SCHEMA=architect
# Optional: package directory containing manifest.json + config JSONs. If unset, config is loaded from DB (insert via config APIs or POST /api/v1/config/package).
# PACKAGE_PATH=sample

# Log levels (default: architect_sdk=info). Set to see logs and SQL:
#   RUST_LOG=architect_sdk=info     - normal
#   RUST_LOG=architect_sdk=debug    - includes all SQL queries
#   RUST_LOG=debug                  - verbose
# RUST_LOG=architect_sdk=info

# ── Storage provider ────────────────────────────────────────────────────────
# Set STORAGE_PROVIDER to enable asset upload/presign/delete.
# Also enable the matching Cargo feature when building the SDK.
# STORAGE_PROVIDER=s3        # requires feature: storage-s3
# STORAGE_PROVIDER=rustfs    # requires feature: storage-s3
# STORAGE_PROVIDER=azure     # requires feature: storage-azure
# STORAGE_PROVIDER=gcs       # requires feature: storage-gcs

# AWS S3 / RustFS (storage-s3 feature)
# STORAGE_BUCKET=my-bucket
# AWS_ACCESS_KEY_ID=AKIA...
# AWS_SECRET_ACCESS_KEY=...
# AWS_REGION=us-east-1
# STORAGE_ENDPOINT=http://localhost:9000   # RustFS / MinIO only

# Azure Blob Storage (storage-azure feature)
# AZURE_STORAGE_CONTAINER=my-container
# Option A — connection string (includes account name + key):
# AZURE_STORAGE_CONNECTION_STRING=DefaultEndpointsProtocol=https;AccountName=...;AccountKey=...
# Option B — account + key (SharedKey):
# AZURE_STORAGE_ACCOUNT=myaccount
# AZURE_STORAGE_ACCESS_KEY=base64key==
# Option C — Managed Identity (no key needed; presign uses User Delegation SAS):
# AZURE_STORAGE_ACCOUNT=myaccount
# Local dev: set AZURE_STORAGE_CONNECTION_STRING=UseDevelopmentStorage=true (Azurite)

# Google Cloud Storage (storage-gcs feature)
# GCS_BUCKET=my-bucket
# Option A — inline service account JSON:
# GCS_SERVICE_ACCOUNT_JSON={"type":"service_account","project_id":...}
# Option B — path to service account key file:
# GOOGLE_APPLICATION_CREDENTIALS=/path/to/key.json
# Option C — ADC / Workload Identity (no key needed; presign uses IAM signBlob API):
#   Set neither of the above; ADC is used automatically on GCP (Cloud Run, GKE, Compute Engine)