product:config
Show the final resolved configuration of the active product, with origin tracing for every key.
Table of contents
Usage
splent product:config [--all] [--feature <name>] [--key <substring>]
Options
| Option | Description |
|---|---|
--all |
Include Flask internal defaults (e.g. SECRET_KEY, SESSION_COOKIE_NAME). |
--feature <name> |
Show only keys injected by this feature. |
--key <substring> |
Filter keys by substring match (case-insensitive). |
Example output
Full config
splent product:config
my_first_app [dev] 1 feature(s) injecting config
KEY VALUE SOURCE
──────────────────────────────────────────────────────────────────────────
REDIS_URL 'redis://redis:6379' feature (splent_feature_redis)
SESSION_PERMANENT False feature (splent_feature_redis)
SESSION_TYPE 'redis' feature (splent_feature_redis)
SQLALCHEMY_DATABASE_URI 'mysql+pymysql://...' product (my_first_app)
SQLALCHEMY_TRACK_MODIFICATIONS False product (my_first_app)
TIMEZONE 'Europe/Madrid' product (my_first_app)
UPLOAD_FOLDER 'uploads' product (my_first_app)
⚠ Overwritten keys:
SESSION_TYPE: 'filesystem' (product) → 'redis' (feature (splent_feature_redis))
Filter by feature
splent product:config --feature redis
Shows only keys injected by splent_feature_redis.
Filter by key name
splent product:config --key session
Shows only keys containing “SESSION”.
How it works
The framework instruments the configuration pipeline to trace the origin of every key:
- Product config (
<product>/config.py) – all keys set here are tagged withproduct (<name>). - Feature config (
<feature>/config.pyviainject_config(app)) – theFeatureIntegratorsnapshotsapp.configbefore and after each call. New or changed keys are attributed to the feature. - Flask defaults – keys present in
app.configbut not in the trace are labeledflask default.
The trace is stored in app.extensions['splent_config_trace'] and includes overwrite history, so the command can warn when a feature silently replaces a product-level value.
Overwrite warnings
When a feature replaces a config key that was already set by the product or another feature, the command shows a warning section:
⚠ Overwritten keys:
SESSION_TYPE: 'filesystem' (product) → 'redis' (feature (splent_feature_redis))
This helps catch silent conflicts between features.
Requirements
- A product must be selected (
splent product:select).
See also
- Configuration – how the layered configuration system works
product:routes– inspect registered routes with feature attributionproduct:validate– validate the product against UVL constraints