{ "module": "mssql", "version": "1", "provides": [ { "name": "mssql-database", "scope": "mesh" } ], "capabilities": [ "container-runtime" ], "emits": [ "database.provisioned", "database.deprovisioned" ], "consumes": [ "mssql.database.provisioned", "mssql.database.deprovisioned" ], "listens": [ { "name": "database", "port": 1433, "protocol": "tcp", "from": "mesh", "why": "modules on any machine that were granted a database, and the people who were given its address; the machine port is the assignment's to pin" } ], "serves": { "mssql-database": {} }, "receives": { "mssql-database": "${dir:grants}/mesh.json" }, "grants": { "mssql-database": "${dir:grants}" }, "own-secrets": { "sa": "${dir:state}/sa.secret", "reader": "${dir:state}/reader.secret" }, "resources": [ { "id": "state", "type": "directory", "mode": "0700", "place": "." }, { "id": "grants", "type": "directory", "mode": "0700" }, { "id": "sa-env", "type": "file", "path": "${dir:state}/sa.env", "mode": "0600", "content": "ACCEPT_EULA=Y\nMSSQL_SA_PASSWORD=${secret:sa}\n" }, { "id": "data", "type": "directory", "mode": "0700", "owner": "10001:0" }, { "id": "net", "type": "network", "name": "mssql" }, { "id": "server", "type": "container", "name": "mssql", "image": "mcr.microsoft.com/mssql/server@sha256:4402d880dd4c34bfa7d8705e56a86cd6c88da80a1f6bbbe741f999e76264a090", "network": "mssql", "env-file": [ "${dir:state}/sa.env" ], "ports": [ "1433" ], "volumes": [ "${dir:data}:/var/opt/mssql" ], "secrets-in-environment": "the image documents only MSSQL_SA_PASSWORD, no _FILE and no configuration field; not convertible without a wrapper entrypoint" } ], "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_MSSQL": "mssql://sa@127.0.0.1:${port:1433}/master", "MESH_PROVISION_PASSWORD_FILE": "${dir:state}/sa.secret", "MESH_RECEIVES": "${dir:grants}/mesh.json", "MESH_MSSQL_READER_PASSWORD_FILE": "${dir:state}/reader.secret" } } ] } }