• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

safe-global / safe-config-service / 22071482164

16 Feb 2026 05:02PM UTC coverage: 98.457% (-0.3%) from 98.735%
22071482164

push

github

web-flow
feat: service aware + global feature flags (#1475)

* Add Service model for service-aware feature configuration

Introduce a Service model that will be used to associate features with
specific consumers (e.g., CGW, Frontend). Each service has a unique key,
display name, and optional description.

This is the foundation for implementing service-aware feature scoping
where features can be filtered based on which service is requesting
chain configurations.

* Extend Feature model with scope and services fields

Add scope field (GLOBAL/PER_CHAIN) and services M2M relationship to
Feature model to support service-aware feature configuration:

- scope: Determines whether a feature applies globally to all chains
  or only to explicitly selected chains. Defaults to PER_CHAIN to
  preserve existing behavior.

- services: M2M relationship to Service model, allowing features to be
  assigned to specific services.

- clean() validation: Ensures GLOBAL scope features cannot have chains
  selected, as they apply to all chains by definition.

Existing features continue to work unchanged with the default PER_CHAIN
scope and no service assignments.

* Update Django admin for Service and Feature models

Add ServiceAdmin:
- Display key, name, and description in list view
- Enable search by key and name

Enhance FeatureAdmin:
- Add scope to list display
- Add filters for scope and services
- Use filter_horizontal for M2M fields (chains, services)
- Organize fields into logical fieldsets with descriptions

The admin now supports the full service-aware feature configuration
workflow, including scope selection and service assignment.

* Add v2 views with service-aware feature filtering

Implement service-aware chain configuration endpoints:

Views (views.py):
- ChainsListViewV2: Returns all chains with features filtered by service
- ChainsDetailViewV2: Returns single chain with features filtered by service
- Both views lookup service by key and pass it to serializer context
... (continued)

1404 of 1426 relevant lines covered (98.46%)

0.98 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

79.22
/chains/admin.py


Source Not Available

The file "chains/admin.py" isn't available on github. Either it's been removed, or the repo root directory needs to be updated.

STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc