Skip to content
Back to skills

Ee Feature

ASecurity

Add a new Enterprise Edition feature behind a feature gate, across backend and frontend. Use when adding an EE-only capability such as SSO.

  • 396 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 3, 2026
testingfrontendbackend

Security analysis

A100/100

Scanned September 3, 2026

npx -y skills add rhesis-ai/rhesis --skill ee-feature --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ee Feature?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Ee Feature
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/rhesis-ai-ee-feature/badge)](https://www.skillsdirectory.com/skills/rhesis-ai-ee-feature)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: ee-feature
description: Add a new Enterprise Edition feature behind a feature gate, across backend and frontend. Use when adding an EE-only capability such as SSO.
---

# Adding a new EE feature

`FeatureRegistry` is for EE features only. A capability that ships in `apps/backend/` under MIT is
unconditionally available and needs no gating — don't register it.

1. Add a member to `FeatureName` in `app/features/__init__.py`.
2. Implement the feature under `ee/backend/src/rhesis/backend/ee/<feature>/`.
3. Register it in `ee/backend/src/rhesis/backend/ee/__init__.py:bootstrap()` by calling
   `FeatureRegistry.register(Feature(...))` with an optional `runtime_check`, then
   `app.include_router(...)` for any new endpoints.
4. Gate routes with `Depends(require_feature(FeatureName.X))`. Use
   `FeatureRegistry.is_available(name, org)` for org-aware checks elsewhere, and
   `FeatureRegistry.is_registered(name)` for early-bailout checks before an org has been resolved
   (e.g. inside an OIDC callback).
5. Mirror the name in `apps/frontend/src/constants/features.ts` and wrap the UI in
   `<FeatureGate feature={FeatureName.X}>`.

## The import boundary

Core code must never import from `rhesis.backend.ee.*`. The only core-side coupling is the
`try/except ImportError` in `app/ee_bootstrap.py`, which is what lets a Community build run without
the EE package installed. The `community-boundary` CI job fails the PR if you break this.

Background on the registry and the gating dependencies is in `apps/backend/AGENTS.md`; the frontend
half is in `apps/frontend/AGENTS.md`.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.