UNPKG

firebase-tools

Version:
40 lines (39 loc) 1.53 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.get_rules = void 0; const zod_1 = require("zod"); const apiv2_1 = require("../../../apiv2"); const tool_1 = require("../../tool"); const util_1 = require("../../util"); exports.get_rules = (0, tool_1.tool)({ name: "get_rules", description: "Get an RTDB database's rules", inputSchema: zod_1.z.object({ databaseUrl: zod_1.z .string() .optional() .describe("connect to the database at url. If omitted, use default database instance <project>-default-rtdb.firebaseio.com. Can point to emulator URL (e.g. localhost:6000/<instance>)"), }), annotations: { title: "Get Realtime Database rules", readOnlyHint: true, }, _meta: { requiresAuth: false, requiresProject: false, }, }, async ({ databaseUrl }, { projectId }) => { const dbUrl = databaseUrl !== null && databaseUrl !== void 0 ? databaseUrl : `https://${projectId}-default-rtdb.us-central1.firebasedatabase.app`; const client = new apiv2_1.Client({ urlPrefix: dbUrl }); const response = await client.request({ method: "GET", path: "/.settings/rules.json", responseType: "stream", resolveOnHTTPError: true, }); if (response.status !== 200) { return (0, util_1.mcpError)(`Failed to fetch current rules. Code: ${response.status}`); } const rules = await response.response.text(); return (0, util_1.toContent)(rules); });