@integrity-labs/cloud-broker 0.7.6 → 0.7.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +3 -3
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -21602,7 +21602,7 @@ var supabaseListProjectsShape = supabaseListProjectsSchema.shape;
21602
21602
  // package.json
21603
21603
  var package_default = {
21604
21604
  name: "@integrity-labs/cloud-broker",
21605
- version: "0.7.6",
21605
+ version: "0.7.9",
21606
21606
  description: "Cloud Access Broker \u2014 MCP server that mints scoped, TTL-bounded cloud credentials per agent task. Ships AWS support (aws_request_access, aws_poll_grant, aws_release_access, aws_describe_scope, aws_preview_request, aws_get_credentials \u2014 STS AssumeRole under the hood); GCP, Azure, and Cloudflare land alongside in the same package as the broker grows.",
21607
21607
  type: "module",
21608
21608
  bin: {
@@ -21763,7 +21763,7 @@ var supabaseInventoryBlock = await loadSupabaseInventoryBlock();
21763
21763
  var NO_DIRECT_SUPABASE_HTTP_BLOCK = "\n\nUse this MCP tool \u2014 never call /supabase/* HTTP endpoints directly. The broker client handles JWT refresh, slug disambiguation, secret_ref redirection, and per-call audit context that direct HTTP loses.";
21764
21764
  server.tool(
21765
21765
  "aws_describe_scope",
21766
- "Return the team's resolved AWS policy ceiling for an account: max_ttl_seconds, allowed_regions, auto_approved_actions, and the action denylist. Call this before aws_request_access if you're not sure what you're allowed to ask for \u2014 it's free, idempotent, and writes nothing." + inventoryBlock + NO_DIRECT_HTTP_BLOCK,
21766
+ "Return the team's resolved AWS policy ceiling for an account: max_ttl_seconds, allowed_regions, the auto_approved rules (each binds an action set to a resource-ARN set, and a request auto-approves only when every requested action+resource pair is covered by one rule), and the action denylist. Call this before aws_request_access if you're not sure what you're allowed to ask for; it's free, idempotent, and writes nothing." + inventoryBlock + NO_DIRECT_HTTP_BLOCK,
21767
21767
  describeScopeShape,
21768
21768
  async (args) => {
21769
21769
  try {
@@ -22056,7 +22056,7 @@ server.tool(
22056
22056
  );
22057
22057
  server.tool(
22058
22058
  "supabase_get_credentials",
22059
- 'Fetch the Supabase JWT for an active grant. Call AFTER supabase_request_access returns active OR after the resolution-notification arrives. Returns { grant_id, expires_at, credentials: { access_token, supabase_url, db_host, project_ref } }. Two usage patterns: (1) REST \u2014 curl -H "Authorization: Bearer <access_token>" <supabase_url>/rest/v1/<table>?select=*; (2) psql \u2014 psql "postgresql://postgres.<project_ref>:<access_token>@<db_host>:5432/postgres". The grant must still be active and unexpired \u2014 409 if already released, 410 if past expires_at. Safe to call multiple times within the TTL window. Call supabase_release_access when done.' + NO_DIRECT_SUPABASE_HTTP_BLOCK,
22059
+ "Fetch the Supabase JWT for an active grant. Call AFTER supabase_request_access returns active OR after the resolution-notification arrives. Returns { grant_id, expires_at, credentials: { access_token, supabase_url, db_host, project_ref } }. IMPORTANT - access_token is a project-signed JWT for the PostgREST layer and is NOT a usable credential on its own: (1) REST requires BOTH headers - `apikey: <project anon or service key>` AND `Authorization: Bearer <access_token>`; a Bearer-only call fails with UNAUTHORIZED_INVALID_API_KEY. This broker does NOT return the apikey, so REST only works if you already hold the project anon key from elsewhere. (2) The JWT is NOT a Postgres password - a psql/pooler connection using it as the password (postgres.<ref>:<jwt>@host) is rejected on :5432 and :6543, because Supavisor authenticates the real DB password via SCRAM. So this credential cannot run raw SQL. (Scoped server-side query/describe tools that execute under your approved scope are coming - ENG-7326.) The grant must still be active and unexpired - 409 if already released, 410 if past expires_at. Safe to call multiple times within the TTL window. Call supabase_release_access when done." + NO_DIRECT_SUPABASE_HTTP_BLOCK,
22060
22060
  supabaseGetCredentialsShape,
22061
22061
  async (args) => {
22062
22062
  try {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@integrity-labs/cloud-broker",
3
- "version": "0.7.6",
3
+ "version": "0.7.9",
4
4
  "description": "Cloud Access Broker — MCP server that mints scoped, TTL-bounded cloud credentials per agent task. Ships AWS support (aws_request_access, aws_poll_grant, aws_release_access, aws_describe_scope, aws_preview_request, aws_get_credentials — STS AssumeRole under the hood); GCP, Azure, and Cloudflare land alongside in the same package as the broker grows.",
5
5
  "type": "module",
6
6
  "bin": {