archiveFeatureFlag
Archive a feature flag to make it inactive in Bucketeer. Provide the flag ID and a comment for audit trail.
Instructions
Archive a feature flag (make it inactive)
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The ID of the feature flag to archive | |
| environmentId | No | Environment ID (uses default if not provided) | |
| comment | Yes | Comment for the archive action (required for audit trail) |
Implementation Reference
- src/tools/archive-flag.ts:38-121 (handler)The handler function that parses input with Zod, creates a BucketeerClient, updates the feature flag to archived=true, and returns a structured response or error.handler: async (input: unknown) => { try { // Validate input const params = archiveFlagSchema.parse(input); logger.debug("Archiving feature flag", params); // Create API client const client = new BucketeerClient( config.bucketeerHost, config.bucketeerApiKey, ); // Prepare request - use UpdateFeatureRequest with archived=true const request: UpdateFeatureRequest = { id: params.id, comment: params.comment, environmentId: getEnvironmentId(params.environmentId), archived: true, }; // Make API call const response = await client.updateFeature(request); logger.info(`Successfully archived feature flag: ${params.id}`); return { content: [ { type: "text", text: JSON.stringify( { success: true, message: `Feature flag '${params.id}' has been archived`, archivedId: params.id, feature: response.feature, }, null, 2, ), }, ], }; } catch (error) { logger.error("Failed to archive feature flag", error); if (error instanceof z.ZodError) { return { content: [ { type: "text", text: JSON.stringify( { success: false, error: "Invalid input parameters", details: error.issues, }, null, 2, ), }, ], isError: true, }; } return { content: [ { type: "text", text: JSON.stringify( { success: false, error: error instanceof Error ? error.message : "Unknown error", }, null, 2, ), }, ], isError: true, }; } },
- src/tools/archive-flag.ts:8-12 (schema)Zod schema used internally for input validation in the archiveFeatureFlag tool handler.export const archiveFlagSchema = z.object({ id: z.string().min(1, "Feature flag ID is required"), environmentId: z.string().optional(), comment: z.string().min(1, "Comment is required for archiving"), });
- src/tools/archive-flag.ts:19-37 (schema)JSON schema defining the input structure for the archiveFeatureFlag tool, used for MCP tool protocol.inputSchema: { type: "object" as const, properties: { id: { type: "string", description: "The ID of the feature flag to archive", }, environmentId: { type: "string", description: "Environment ID (uses default if not provided)", }, comment: { type: "string", description: "Comment for the archive action (required for audit trail)", }, }, required: ["id", "comment"], },
- src/tools/index.ts:7-13 (registration)Registration of the archiveFlagTool (as archiveFeatureFlag) within the array of all available tools.export const tools = [ listFlagsTool, createFlagTool, getFlagTool, updateFlagTool, archiveFlagTool, ];
- src/tools/index.ts:15-20 (registration)Re-export of the archiveFlagTool from the tools index for easy import elsewhere.export { listFlagsTool, createFlagTool, getFlagTool, updateFlagTool, archiveFlagTool,