-
Notifications
You must be signed in to change notification settings - Fork 106
Description
🎯 Bounty: Flags SDK Adapter + Server-Side Feature Flags + Advanced Flag Features
Overview
This bounty requires implementing a Databuddy adapter for the Flags SDK, adding server-side feature flag support, and implementing advanced feature flag capabilities. The work must be completed and merged into the Flags SDK repository.
Requirements
1. Flags SDK Adapter (Required)
Create a Databuddy adapter for the Flags SDK, but do NOT open a PR for it until approved
Acceptance Criteria:
- ✅ Adapter follows Flags SDK conventions and works with supported frameworks
2. Server-Side Feature Flags (Required)
Add Node.js server-side SDK for feature flags evaluation.
Acceptance Criteria:
- ✅
@databuddy/sdk/nodeexport for feature flags - ✅ Works in Next.js server components, API routes, and middleware
- ✅ Works in serverless environments with proper caching
- ✅ Type-safe API with full TypeScript support
3. Multi-Variant Support (Required)
Support multi-variant flags (not just boolean) with string, number, or object variants.
Acceptance Criteria:
- ✅ Flags can have string, number, or object variants
- ✅ Variant distribution percentages supported
- ✅ Sticky assignment ensures consistent variant per user
- ✅ Works in both client and server SDKs
- ✅ Dashboard UI allows variant configuration
4. Flag Dependencies / Prerequisites (Required)
Support flag dependencies and prerequisite logic.
Acceptance Criteria:
- ✅ Flags can declare dependencies on other flags
- ✅ Dependent flags are automatically disabled if prerequisite is disabled
- ✅ Circular dependencies are detected and prevented
- ✅ Dashboard shows dependency relationships
5. Scheduled Flag Changes (Required)
Support scheduled flag changes and gradual rollouts.
Acceptance Criteria:
- ✅ Flags can be scheduled to enable/disable at specific times
- ✅ Gradual rollout schedules supported (e.g., 10% → 50% → 100% over time)
- ✅ Schedule evaluation happens automatically
- ✅ Timezone-aware scheduling works correctly
- ✅ Dashboard shows schedule timeline
6. Multi-Environment Flag Contexts (Required)
Support separate flag contexts for different environments (dev, staging, prod).
Acceptance Criteria:
- ✅ Flags can have environment-specific configurations
- ✅ API evaluates flags based on environment context
- ✅ SDKs automatically pass environment context
- ✅ Dashboard clearly shows environment separation
- ✅ Prevents cross-environment flag operations
Technical Requirements
- TypeScript with strict type checking
- Follow existing codebase patterns and conventions
- Comprehensive error handling and test coverage
- Backward compatibility maintained
- Documentation for all new features
Submission Requirements
- Flags SDK adapter is ready to be PR'd
- All Databuddy code changes in Databuddy repository
- Documentation updated
- Test coverage for all features
- Include link to merged Flags SDK PR
Timeline
- Bounty Duration: TBD
- Expected Completion: Within 30 days of acceptance
Questions?
Open an issue in this repository with the bounty label for questions about requirements or clarification.