Commit Graph

10 Commits

Author SHA1 Message Date
Ubuntu 9ee3dc1d59 feat(azure): allow reusing existing Storage Account via storageAccountName param
- infra.bicep: add storageAccountName param (empty = auto-generate
  '${projectName}store'); effectiveStorageAccountName var resolves the
  final name; Bicep reconciles the existing account idempotently without
  touching other file shares (caddydata, neo4jdata, etc.)
- 1-infra.sh: forward STORAGE_ACCOUNT_NAME (optional) to Bicep
- config.sh.example: document Opció A (existing account, e.g. stgraphiti16852)
  vs Opció B (new account); clarify which vars are inputs vs outputs of 1-infra.sh

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-05 07:33:30 +00:00
Ubuntu 842cf09a10 feat(azure): add PostgreSQL Flexible Server + Azure Files persistent storage
- infra.bicep: Storage Account + File Share (mirofish-uploads, 100GB SMB),
  envStorage to register share in Container Apps Env, PostgreSQL Flexible
  Server (v16, 32GB) with mirofish database and Azure-services firewall rule;
  new secure outputs: storageConnectionString, databaseUrl, storageAccountKey
- container-app.bicep: storageConnectionString/databaseUrl/storageAccountName/
  fileShareName params; volume mount at /mnt/uploads (Azure Files);
  OASIS_SIMULATION_DATA_DIR + UPLOAD_FOLDER + STORAGE_TYPE env vars set
  conditionally based on whether storage is configured
- 1-infra.sh: POSTGRES_ADMIN_PASSWORD required, register Storage/PostgreSQL
  providers, pass new Bicep params, print generated DATABASE_URL and
  STORAGE_CONNECTION_STRING for pasting into config.sh
- 2-build-deploy.sh: DATABASE_URL + STORAGE_CONNECTION_STRING required and
  forwarded to container-app.bicep
- config.sh.example: add POSTGRES_ADMIN_PASSWORD, POSTGRES_ADMIN_USER,
  POSTGRES_SKU, STORAGE_CONNECTION_STRING, STORAGE_ACCOUNT_NAME,
  FILE_SHARE_NAME, DATABASE_URL
- pyproject.toml + uv.lock: add psycopg2-binary>=2.9.9 (PostgreSQL driver)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-04 23:37:31 +00:00
Ubuntu fb280011b7 fix(azure): add GRAPH_BACKEND, NEO4J, LLM_EMBED, LLM_SMALL to config and bicep
All variables now flow from config.sh through 2-build-deploy.sh to the
container env, so GRAPH_BACKEND=graphiti is honoured at runtime.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-25 22:42:58 +00:00
Ubuntu 058d260552 fix(azure): restore config.sh sourcing in deploy scripts; add --no-cache support
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-25 21:54:57 +00:00
Ubuntu 09935e53a0 refactor(graph): remove hardcoded ZEP checks, use get_graph_config_errors; add embed/small LLM env docs
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-25 21:10:40 +00:00
Ubuntu 4fceef609d feat(deploy): support GRAPH_BACKEND, NEO4J_* and LLM_PROVIDER in Azure deploy
- Dockerfile installs graphiti optional extras so any GRAPH_BACKEND works at runtime
- container-app.bicep adds graphBackend, neo4jUri/User/Password and llmProvider params
- 2-build-deploy.sh validates graph backend config and passes all new vars to Bicep
- config.sh.example documents new variables with inline guidance

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-25 13:37:12 +00:00
Ubuntu 7d172b9eec chore(i18n): replace all hardcoded Chinese strings with English in backend
Translate all Chinese comments, docstrings, log messages, error messages,
and LLM prompt text to English across the entire backend codebase.
Locale translation files (locales/*.json) are unchanged.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 23:40:58 +00:00
Ubuntu f9b5f79747 chore(azure): remove Log Analytics Workspace from infra
Simplifies infrastructure: ACR + Container Apps Environment only.
Log Analytics can be added later if observability is needed.
Update INSTALL.md accordingly.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 19:30:36 +00:00
Ubuntu ffe6c537d0 feat(azure): add infra + build/deploy scripts for Azure Container Apps
Split Bicep into infra.bicep (one-time: ACR + Log Analytics + Env) and
container-app.bicep (per-deploy: Container App with ACR auth).
Add 1-infra.sh and 2-build-deploy.sh shell scripts with config.sh.example
covering all .env variables. Gitignore azure/config.sh to prevent
secret leakage.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 19:28:21 +00:00
Ubuntu b5c4d4a336 feat(auth): add JWT login screen, production Dockerfile and Azure Container App Bicep
- Backend: POST /api/auth/login endpoint (PyJWT HS256, 24h expiry)
  require_auth before_request middleware protecting all /api/* routes
  except /login and /health; wsgi.py entry point for gunicorn;
  Flask serves compiled Vue SPA in production
- Frontend: LoginView.vue (MiroFish dark aesthetic), auth.js reactive
  store, Axios Bearer token injection + 401 → /login redirect,
  Vue Router global guard protecting all routes
- i18n: login keys added to en/zh/es/ca locale files
- Dockerfile: multi-stage build (node:20-slim → python:3.11-slim +
  gunicorn), single port 5001
- Azure: container-app.bicep following CTTI guidelines — Log Analytics
  (NOR0016-C 90d retention), Container Apps Environment, all .env vars
  as env vars (secrets via secretRef, plain values inline)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 18:46:39 +00:00