{ "module": "postgres", "version": "1", "provides": [ { "name": "postgres-database", "scope": "mesh" } ], "claims": [ { "name": "mesh-store", "scope": "mesh", "serves": [ "databases", "query" ] } ], "capabilities": [ "container-runtime" ], "emits": [ "database.provisioned", "database.deprovisioned" ], "consumes": [ "postgres.database.provisioned", "postgres.database.deprovisioned" ], "listens": [ { "name": "database", "port": 5432, "protocol": "tcp", "from": "mesh", "why": "modules on any machine that were granted a database" } ], "guards": [ 5432 ], "serves": { "postgres-database": { "port": 5432 } }, "receives": { "postgres-database": "${dir:grants}/mesh.json" }, "grants": { "postgres-database": "${dir:grants}" }, "own-secrets": { "superuser": "${dir:state}/superuser.secret", "reader": "${dir:state}/reader.secret" }, "resources": [ { "id": "state", "type": "directory", "mode": "0700", "place": "." }, { "id": "grants", "type": "directory", "mode": "0700" }, { "id": "store-data", "type": "directory", "path": "/var/lib/mesh-store", "mode": "0700", "owner": "999:70" }, { "id": "server", "type": "container", "name": "postgres", "image": "pgvector/pgvector@sha256:cf134a767f474095eeba57e0117be8e568e011a63f33fbf252f14c9b760f8e6f", "env": { "POSTGRES_PASSWORD_FILE": "/run/secrets/superuser", "PGDATA": "/var/lib/postgresql/data/pgdata" }, "ports": [ "5432:5432" ], "volumes": [ "/var/lib/mesh-store:/var/lib/postgresql/data", "${dir:state}/superuser.secret:/run/secrets/superuser:ro" ] }, { "id": "client", "type": "package", "package": "postgresql-libs" } ], "build": { "artifacts": [ { "name": "code", "kind": "bundle", "language": "typescript", "entrypoints": [ "index.js", "tools/index.js", "provisioner/index.js" ], "loads": [ "index.js", "tools/index.js", "provisioner/index.js" ], "env": { "MESH_PROVISION_POSTGRES": "postgres://postgres@127.0.0.1:${port:5432}/postgres?sslmode=disable", "MESH_PROVISION_PASSWORD_FILE": "${dir:state}/superuser.secret", "MESH_RECEIVES": "${dir:grants}/mesh.json", "MESH_POSTGRES_READER_PASSWORD_FILE": "${dir:state}/reader.secret" } } ] } }