@farmart-tech/brave-admin-sdk
v3.0.0
Published
> Administrative SDK for full management of Brave Ship feature flags and workspaces.
Readme
@farmart-tech/brave-admin-sdk
Administrative SDK for full management of Brave Ship feature flags and workspaces.
@farmart-tech/brave-admin-sdk provides complete write access to the Brave Ship ecosystem via a secure REST API. It is designed for use in administrative dashboards, CI/CD pipelines, and internal management tools.
Features
- 🛠️ Full CRUD: Create, update, delete, and archive feature flags, segments, and conditions.
- 🏢 Workspace Management: Programmatically manage workspaces (environments).
- 🔐 Secure Auth: Seamless integration with Firebase Authentication for API security.
Installation
npm install @farmart-tech/brave-admin-sdk
# or
pnpm add @farmart-tech/brave-admin-sdkPeer Dependencies
axios^1.6.7@farmart-tech/brave-feature-core@farmart-tech/brave-firebase-adapter(for reading logs/state)
Quick Start
Basic Configuration
import { FeatureFlagWriter, WorkspaceAPI } from '@farmart-tech/brave-admin-sdk';
import { getAuth } from 'firebase/auth';
const config = {
api: 'https://api.farmart.com/api/v1',
getIdToken: async () => {
const user = getAuth().currentUser;
return await user.getIdToken();
},
workspace: 'production'
};
const writer = new FeatureFlagWriter(config);
const workspaceApi = new WorkspaceAPI(config);Managing Feature Flags
import { FeatureBuilder } from '@farmart-tech/brave-admin-sdk';
// Create a new flag
const feature = new FeatureBuilder()
.setFeatureName('new_checkout_flow')
.setDescription('Enables the redesigned checkout experience')
.setEnabled(true)
.setReleaseDate('2024-12-01')
.build();
await writer.setFeatureFlag('new_checkout_flow', feature);
// Update a flag
await writer.updateFeatureFlag('new_checkout_flow', { enabled: false });
// Archive a flag (safe deletion)
const currentData = await reader.getFeatureFlag('old_experiment'); // Using a reader
await writer.archiveFeatureFlag('old_experiment', currentData);Managing Workspaces
// List all workspaces
const workspaces = await workspaceApi.list();
// Create a new staging workspace
await workspaceApi.create({
id: 'staging-q1',
name: 'Staging Q1 2024',
description: 'Environment for Q1 feature testing'
});Documentation
Comprehensive API documentation is available at: https://fmt-feature-management.web.app/docs/admin-sdk/
License
MIT © FarMart
