{ "module": "claude-licence-manager", "version": "1", "slug": "licmgr", "requires": [ "postgres-database", "secret" ], "contributes": { "postgres-database": { "name": "claude_licences" } }, "binds": { "postgres-database": "${dir:state}/database.json" }, "secrets": { "postgres-database": "${dir:state}/database.secret", "secret": { "grant-key": "${dir:state}/grant.key" } }, "seats": [ { "name": "anthropic-licence-manager", "scope": "mesh", "serves": [ "licences", "bindings", "bind", "switch", "release", "refresh", "usage", "adopt", "current" ] } ], "claims": [ { "name": "anthropic-licence-manager", "scope": "mesh", "serves": [ "licences", "bindings", "bind", "switch", "release", "refresh", "usage", "adopt", "current" ] } ], "emits": [ "licence.adopted", "licence.refused", "licence.failing", "usage.read" ], "state": [ "bindings" ], "reads": [ "claude-code.holdings" ], "resources": [ { "id": "state", "type": "directory", "mode": "0700", "place": "." }, { "id": "database-url", "type": "file", "path": "${dir:state}/database.url", "mode": "0600", "content": "postgresql://${bound:postgres-database:as}:${secret:postgres-database}@${bound:postgres-database:at}:${bound:postgres-database:port}/${bound:postgres-database:as}\n" }, { "id": "settings", "type": "file", "path": "${dir:state}/settings.json", "mode": "0600", "merge": "json", "content": "{\n \"cadence_minutes\": 240,\n \"floor_minutes\": 60,\n \"failures_to_notify\": 3,\n \"cooldown_hours\": 24,\n \"refresh_warn_days\": 3\n}\n" }, { "id": "prepare", "type": "process", "name": "claude-licence-manager-prepare", "artifact": "code", "run": [ "./claude-licence-manager", "prepare" ], "run-once": true, "env": { "DATABASE_URL_FILE": "${dir:state}/database.url" }, "restart-on": [ "database-url" ] } ], "build": { "artifacts": [ { "name": "code", "kind": "bundle", "language": "go", "system": "arch", "from": "cmd/claude-licence-manager", "binary": "claude-licence-manager", "loads": [ "claude-licence-manager" ], "env": { "DATABASE_URL_FILE": "${dir:state}/database.url", "MESH_LICENCE_STATE": "${dir:state}", "MESH_LICENCE_KEY_FILE": "${dir:state}/grant.key", "MESH_LICENCE_SETTINGS": "${dir:state}/settings.json" } } ] } }