check:product

Validate the active product’s feature integration: environment variables, symlinks, configuration, and blueprint registration.


Table of contents

  1. Usage
  2. What it checks
  3. Example output
    1. Env var sources
  4. Missing env vars
  5. Requirements
  6. See also

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:

  1. Add it to docker/.env via splent product:env --merge --dev
  2. Add a config.py to the feature with inject_config(app) – use splent feature:inject-config <feature> to auto-generate it from os.getenv() calls in the source code.

Requirements

  • A product must be selected (splent product:select).
  • SPLENT_APP must be set.

See also


Back to top

splent. Distributed by an LGPL license v3. Contact us: drorganvidez@us.es