check:product
Validate the active product’s feature integration: environment variables, symlinks, configuration, and blueprint registration.
Table of contents
Usage
splent check:product
What it checks
| Check | Description |
|---|---|
| Env vars | Validates that every env var declared in feature contracts is available – either in docker/.env or injected at runtime by a feature’s inject_config. Variables satisfied by refinement features (e.g. mailhog overriding mail’s SMTP vars) are not flagged. |
| Symlinks | Verifies that all feature symlinks in {product}/features/ resolve to valid targets. |
| Config overwrites | Shows when a feature’s config key is overwritten by another feature (e.g. mailhog overriding mail’s MAIL_SERVER). |
| Blueprints | Lists all feature blueprints registered in the Flask app. |
Example output
check:product -- my_first_app
Env Vars
Variable Feature(s) Source Status
------------------------------ ------------------------- -------------- ----------
CONFIRM_EMAIL_SALT confirmemail inject_config ✔
CONFIRM_EMAIL_TOKEN_MAX_AGE confirmemail inject_config ✔
MAIL_DEFAULT_SENDER mail, mailhog docker/.env ✔
MAIL_PASSWORD mail inject_config ✔
MAIL_PORT mail inject_config ✔
MAIL_SERVER mail inject_config ✔
REDIS_URL redis, session_redis docker/.env ✔
Symlinks
Feature Status
------------------------- ----------
admin ✔
auth@v1.5.3 ✔
mail ✔
...
Config Overwrites
Key Set by Overwritten by
------------------------- ------------------------- -------------------------
MAIL_PORT mail mailhog
MAIL_SERVER mail mailhog
MAIL_USE_TLS mail mailhog
Blueprints
Blueprint Feature
-------------------- -------------------------
admin_bp admin
auth_bp auth
mail_bp mail
...
4 passed, 3 warnings
Env var sources
| Source | Meaning |
|---|---|
docker/.env |
Variable is set in the product’s docker/.env file. |
inject_config |
Variable is injected into app.config by a feature’s config.py at runtime. |
-- |
Variable is not found anywhere – action required. |
When multiple features require the same variable (e.g. REDIS_URL used by both redis and session_redis), they are grouped into a single row.
Variables overwritten by refinement features (visible in the Config Overwrites table) are considered satisfied and not flagged as missing.
Missing env vars
If a variable is missing, you have two options:
- Add it to
docker/.envviasplent product:env --merge --dev - Add a
config.pyto the feature withinject_config(app)– usesplent feature:inject-config <feature>to auto-generate it fromos.getenv()calls in the source code.
Requirements
- A product must be selected (
splent product:select). SPLENT_APPmust be set.
See also
feature:inject-config– generateconfig.pyfrom env vars in source codefeature:status– verify manifest statecheck:features– check feature-level healthproduct:env– merge environment files