Ubuntu
df6c77255a
fix(simulation): fix SQLite lock on Azure Files and Neo4j clone query
...
- Add nobrl,cache=strict,nosharesock,actimeo=30 mount options to the
Azure Files volume so SQLite can use byte-range locking correctly over
SMB (without nobrl, Reddit DB creation fails with 'database is locked')
- Fix _execute_neo4j_query to pass parameters as params= keyword arg
(was parameters_= which the installed neo4j driver does not accept),
restoring per-simulation graph isolation via clone_graph
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-11 22:49:38 +00:00
Ubuntu
c032580c3b
fix(azure): fix Bicep syntax errors in infra.bicep and container-app.bicep
...
- infra.bicep: remove escaped apostrophes from @description strings (BCP071),
remove unsupported @sensitive() decorator (BCP057), rename output
storageAccountName -> storageAccountNameOut to avoid collision with param,
rename postgresAdminUser output -> postgresAdminUserOut
- container-app.bicep: remove unused fileShareName param (no-unused-params)
- 1-infra.sh: update output key storageAccountName -> storageAccountNameOut
- 2-build-deploy.sh: remove fileShareName param (no longer in container-app.bicep)
Both files now compile clean (az bicep build passes with only expected
outputs-should-not-contain-secrets warnings).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-05 07:47:06 +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
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
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