product:params

Shows every parameter the active product’s features declare in [tool.splent.config_schema], the value it resolves to and the layer that decides it. It reads the files and builds no app.


Example

splent product:params
  uvlhub_splent  [dev]  62 parameter(s) of 12 feature(s)
  environment: docker/.env

  KEY                                VALUE                                       LAYER        BIND
  ──────────────────────────────────────────────────────────────────────────────────────────────────────
  captcha
    CAPTCHA_PROTECTED_FORMS          ["signup"]                                  product      derivation
  auth
    AUTH_LOGIN_MAX_ATTEMPTS          10                                          default      deploy
    AUTH_PASSWORD_CONFIRM            true                                        product      derivation
  media
    MEDIA_PUBLIC_GALLERY             false                                       product      runtime
    MEDIA_MAX_UPLOAD_SIZE            20M                                         product      deploy
  orcid
    ORCID_CLIENT_SECRET              ****                                        environment  deploy

  A runtime parameter may be changed in the settings panel, which is not read here.
  Secret values are masked, use --show-secrets to reveal them.
splent product:params --feature media
splent product:params --prod

Options

Option Description
--dev, --prod The environment: its features (the base list and features_<env>) and its environment file. Without either, SPLENT_ENV, else dev
--feature NAME Only the parameters of this feature, by its short name
--show-secrets Print secret values in plain text

Layers

The value is resolved as the framework resolves it at boot (Configuration), weakest first.

Layer Where
default The feature’s: its [tool.splent.config], or the default of its schema
product The product’s [tool.splent.config]
environment The environment the product’s container gets: docker/.env in development, deploy/.env in production

The environment of a development product carries every default and every value the product decides, because product:env --merge writes them there. A value there equal to the product’s, or to the default when the product decides nothing, is the product’s or the default, as the boot reads it. Any other value is the deployment’s decision and wins. For a derivation parameter it is listed under Drift too.

Two layers are not read: the product’s config.py, which runs only in the app, and, for a runtime parameter, the settings panel, whose values are in the database. product:config boots the app and shows the first; the panel shows the second.

What it says under the table

Line Meaning
Drift, the environment overrides what the product decides derivation parameters whose value comes from the environment
✗ KEY (feature): the product's value stops the boot: ... A value the schema refuses. The environment’s value of a runtime parameter is ignored instead, as the boot ignores it
✗ KEY (feature): required, and neither the product nor the environment sets it A required parameter without a value
Without a [tool.splent.config_schema], so not listed Selected features that declare no schema. Their keys are not parameters

The command exits 0 whatever it finds. product:validate is the check that fails.

Secrets

A parameter of type secret is masked, and so is a string whose name says it is one (..._TOKEN, ..._PASSWORD), in case its schema does not mark it. A number, a bool or a list never is, whatever its name.

Parameters in the model

A parameter declared with uvl = true has nodes in the SPL’s feature model (see In the feature model). The value this command shows is the one that selects them, in product:validate, product:missing, product:auto-require and product:configure.


Back to top

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