Alpha — the platform is in development. Docs cover what ships today; anything unbuilt is marked. Reference
-rw-rw-r-- content:content /docs/reference/console.dtmpl

Console commands

Every command this install answers to: 305, grouped by the module that owns them: 53 groups (Symfony v8.1.9).

The page is generated from the running application, so it cannot name a command that does not exist and it cannot fall behind one that was added. Run any of them as:

docker exec coolms_app php bin/console <command>

2 hidden commands omitted: the framework's own internals, which the application declines to advertise.

Global options — --help, --env, --quiet, --verbose, --no-interaction and the rest — mean the same thing everywhere and are not repeated per command.

Groups without parentheses are the platform's own modules, derived from each command's class rather than from its name — the names have drifted, and coolms:group:create belongs to Identity however it reads. Parenthesised groups are third-party, grouped by the prefix their own authors chose.

1 platform command could not be traced to a module from its class and is grouped by prefix instead: coolms:gen:entity.

Analytics#

coolms:analytics:build-rollups#

Materialise the daily analytics rollups from the raw event store.

coolms:analytics:build-rollups [--days DAYS]
Option Description
--days value Number of trailing days to (re)build, inclusive of today (a large value backfills).

coolms:analytics:build-subjects#

Materialise the CDP subject profiles from the raw analytics event store.

coolms:analytics:build-subjects [--days DAYS]
Option Description
--days value Number of trailing days of events to build subjects from (a large value backfills).

coolms:analytics:prune-events#

Delete generic analytics events older than the configured retention window.

coolms:analytics:prune-events [--dry-run] [--execute] [--force]
Option Description
--dry-run flag The default now; accepted, and it wins over --execute.
--execute flag Delete. Without it the command reports and changes nothing.
--force flag Do not ask. Required with --execute under --no-interaction.

coolms:analytics:prune-subjects#

Report (default) or remove CDP subject profiles whose consent has lapsed unrenewed, with their events; --apply to remove

coolms:analytics:prune-subjects [--apply] [--force] [--show-kept]
Option Description
--apply flag Actually remove the listed profiles and their events (default is report-only)
--force flag Do not ask. Required with --apply under --no-interaction.
--show-kept flag List every kept subject with its reason (the summary counts them by default)

coolms:analytics:recompute-segments#

Recompute CDP segment membership across all subject profiles.

coolms:analytics:recompute-segments

Api#

coolms:api:actions#

The declared actions; with --rule-four, the always-elevated list by kind

coolms:api:actions [--rule-four]
Option Description
--rule-four flag Only the always-elevated list, by kind

coolms:api:call-access#

What the caller-access evaluator answers for one account over every API route, and where its two layers disagree

coolms:api:call-access [--as AS] [--method METHOD] [--disagreements] [--by-module]
Option Description
--as value The account asked for, by its email address
--method value The method asked for, or ALL
--disagreements flag Print only the routes where the two layers disagree
--by-module flag Count the answers and disagreements per defining module

coolms:api:client-versions#

Requests per first-party app version over the last N days (X-CoolMS-Client), beside each minimum

coolms:api:client-versions [--days DAYS]
Option Description
--days value How many days back, today included

coolms:api:route-node-modes#

The 0777 route nodes, classified for a customer-like caller (ADR-200); seed or shrink its list.

coolms:api:route-node-modes [--seed-list] [--shrink-list]
Option Description
--seed-list flag Write the approved list, when there is none.
--shrink-list flag Drop entries no longer approvable; add none.

coolms:api:writes-without-if-match#

Writes applied without If-Match on one surface, per day and client; did the last full day count none

coolms:api:writes-without-if-match [--surface SURFACE] [--days DAYS]
Option Description
--surface value The surface (calendar.event, ...)
--days value How many full days to list

Backup#

coolms:backup:create#

Export a portable backup bundle (config+content by default; --tier=all for a full clone).

coolms:backup:create [--tier TIER] [--only ONLY] [--out OUT]
Option Description
--tier value Comma list of tiers to include (config, content, runtime) or "all".
--only value Restrict to these backup keys (comma list), e.g. --only=calendar.
--out value Bundle output directory (default: var/backups/backup-).

coolms:backup:restore#

Restore a backup bundle (idempotent upsert). WRITES to the DB — use --dry-run first.

coolms:backup:restore [--dry-run] [--only ONLY] [--reconcile-deletes] [--force] [--] <bundle>
Option Description
bundle required Path to the backup bundle directory (contains manifest.json).
--dry-run flag Print the restore plan without writing anything.
--only value Restrict to these backup keys (comma list).
--reconcile-deletes flag ALSO delete local rows absent from the bundle (close the additive-only gap). DESTRUCTIVE; only capable contributors participate.
--force flag Skip the confirmation prompt (for automation).

Calendar#

coolms:calendar:prune-orphan-personal-calendars#

Report (default) or remove personal calendars whose owner account no longer exists; --apply to remove

coolms:calendar:prune-orphan-personal-calendars [--apply] [--force]
Option Description
--apply flag Actually remove the listed calendars, with their items and shares (default is report-only)
--force flag Do not ask. Required with --apply under --no-interaction.

coolms:calendar:seed-personal#

Create a personal calendar for every non-system user (idempotent).

coolms:calendar:seed-personal

Call#

coolms:call:ami:listen#

Listen to the Asterisk Manager Interface and track calls (M9.a.3 daemon)

coolms:call:ami:listen

coolms:call:import-recording#

Attach a .wav recording to a tracked call by its AMI call id (M9.b)

coolms:call:import-recording <call-id> <file>
Option Description
call-id required The AMI correlation id (Linkedid/Uniqueid) of the call
file required Path to the .wav recording file

coolms:call:pbx:provision#

Mint (or rotate) the phone system's machine identity and its bearer tokens.

coolms:call:pbx:provision [--to TO] [--rotate]
Option Description
--to value The file the token pair is written to (mode 0600); by default where the phone system's sidecar reads it.
--rotate flag Revoke ALL existing tokens of the phone system before issuing the new pair (a leaked credential).

coolms:call:recordings:converge#

Give the recordings their declared owner, group, modes and audited mark (dry run unless --execute)

coolms:call:recordings:converge [--execute] [--force]
Option Description
--execute flag Apply the changes; without it nothing is written.
--force flag Do not ask; needed for --execute unattended.

coolms:call:remove-test-rig-records#

Remove the call records the calltest rig made (channel Local/700@calltest-...); a real call is never selected.

coolms:call:remove-test-rig-records [--execute] [--force]
Option Description
--execute flag Remove them. Without it the command reports and changes nothing.
--force flag Do not ask. Required with --execute under --no-interaction.

coolms:call:webphone:provision#

Provision (or rotate) a user WebRTC-SIP softphone credential and write it for Asterisk; no secret is printed.

coolms:call:webphone:provision [--rotate] [--] <user>
Option Description
user required The user UUID or email address.
--rotate flag Generate a fresh secret even if one already exists.

coolms:call:webphone:render-asterisk#

Render all provisioned WebRTC-SIP credentials into the Asterisk pjsip endpoints include.

coolms:call:webphone:render-asterisk [--dry-run]
Option Description
--dry-run flag Print the rendered file, passwords left out, instead of writing it.

Chat#

coolms:fixtures:chat-conversation#

Give a test account one direct conversation with a message (dev/test only)

coolms:fixtures:chat-conversation [--with WITH] [--] <email>
Option Description
email required The account the conversation is for
--with value The other participant, who sends the message

Comment#

coolms:comment:prune-spam#

Delete spam-bucket comments older than the given number of days.

coolms:comment:prune-spam [--days DAYS] [--dry-run] [--execute] [--force]
Option Description
--days value Delete spam comments older than this many days (a value < 1 disables pruning).
--dry-run flag The default now; accepted, and it wins over --execute.
--execute flag Delete. Without it the command reports and changes nothing.
--force flag Do not ask. Required with --execute under --no-interaction.

Content#

coolms:content:cleanup-e2e-fixtures#

Delete leftover e2e-test SiteSection directories (test-e2e-, e2e-lifecycle-) under /content.

coolms:content:cleanup-e2e-fixtures [--execute] [--force] [--dry-run]
Option Description
--execute flag Delete. Without it the command lists the candidates and changes nothing.
--force flag Do not ask. Required with --execute under --no-interaction.
--dry-run flag The default now; accepted so existing invocations keep working, and it wins over --execute.

coolms:content:conform-bodies#

Convert stored page bodies and templates that fail their editor profile (dry run unless --execute)

coolms:content:conform-bodies [--dry-run] [--execute] [--force]
Option Description
--dry-run flag The default; accepted, and it wins over --execute.
--execute flag Write the converted bodies. Without it, nothing is written.
--force flag Do not ask. Required with --execute under --no-interaction.

coolms:content:ensure-categories#

Ensure the blog categories taxonomy tree + starter categories exist (idempotent).

coolms:content:ensure-categories

coolms:content:merge-articles-into-pages#

Move personal articles into the personal pages tree, re-pointing publication links

coolms:content:merge-articles-into-pages [--apply] [--user USER]
Option Description
--apply flag Actually move the articles
--user value Restrict to a single user UUID

coolms:content:package:drop#

Remove a content package from the VFS (dry-run unless --force).

coolms:content:package:drop [--force] [--] <path>
Option Description
path required VFS path of the package, e.g. /content/coolms-site/home
--force flag Actually delete it. Without this the command only reports.

coolms:content:seed-news-demo#

Seed a demo /news autoindex directory + sample Pages so the widget:vfs directory-index (ADR-141) renders live and the articles appear under Content → Pages.

coolms:content:seed-news-demo

Decision#

coolms:decision:evaluate-drd#

Evaluate a deployed DMN DRD: run its decisions in dependency order and print each result.

coolms:decision:evaluate-drd [-i|--input INPUT] [--] <key>
Option Description
key required The deployed DRD definition key (e.g. "pricing.drd").
--input / -i value JSON object of input variables shared across the DRD's decisions.

Document#

coolms:document:cleanup-test-scratch#

Delete leftover integration-test scratch directories (tmp-naming-convention-*) under /docs.

coolms:document:cleanup-test-scratch [--execute] [--force] [--dry-run]
Option Description
--execute flag Delete. Without it the command lists the candidates and changes nothing.
--force flag Do not ask. Required with --execute under --no-interaction.
--dry-run flag The default now; accepted so existing invocations keep working, and it wins over --execute.

coolms:document:font#

Install a document font, list the installed ones, or remove a family

coolms:document:font [<action> [<target>]]
Option Description
action optional list, install, remove, browse or fetch
target optional a path to a .ttf/.otf for install, a family name for remove and fetch, a search term for browse

coolms:document:font-catalogue:refresh#

Fetch the Google Fonts family list into local storage. Run on a schedule; safe to run by hand.

coolms:document:font-catalogue:refresh

coolms:document:gc#

Clean up files under /docs/.templates/ that are not valid template Nodes.

coolms:document:gc [--execute] [--force] [--limit LIMIT] [--verbose-paths]
Option Description
--execute flag Actually delete orphans. Without this flag the command is a dry-run.
--force flag Do not ask. Required with --execute under --no-interaction.
--limit value Max orphans processed per run.
--verbose-paths flag List every orphan path. Off by default to keep large fleets tractable.

coolms:document:reconcile-template-roots#

Create missing /.templates directories for existing document spaces

coolms:document:reconcile-template-roots [--apply] [--user USER]
Option Description
--apply flag Actually create the missing directories
--user value Restrict to a single user UUID

coolms:document:set-entity-ref#

Stamp Phase 2 (ADR-094) entityType / collection / fields onto a template schema variable.

coolms:document:set-entity-ref [--template TEMPLATE] [--slug SLUG] [--variable VARIABLE] [--entity-type ENTITY-TYPE] [--collection] [--fields FIELDS] [--clear] [--dry-run]
Option Description
--template value Template Node UUID. Mutually exclusive with --slug.
--slug value Template slug (matches the Node filename without extension). Mutually exclusive with --template.
--variable value Dotted path of the contextSchema variable to mark.
--entity-type value Fully-qualified PHP class name (e.g., 'App\Identity\Domain\Entity\User').
--collection flag Mark the reference as a collection (multi-select picker, list of ids).
--fields value Comma-separated allow-list of exposed entity fields. Empty = resolver default.
--clear flag Remove entityType/collection/fields from the variable instead of setting them.
--dry-run flag Print the proposed change without persisting.

coolms:document:space#

Enable or disable document handling for a site (creates the directory as well as the flag).

coolms:document:space [<action> [<site>]]
Option Description
action optional list, enable or disable
site optional the site slug

DynamicEntity#

coolms:dynamic-entity:cleanup-orphan-types#

Remove DynamicEntityType records whose slug conflicts with a PHP-registered entity alias.

coolms:dynamic-entity:cleanup-orphan-types [--execute] [--force] [--dry-run] [--include-unconfigured]
Option Description
--execute flag Delete. Without it the command reports what it would delete and changes nothing.
--force flag Do not ask. Required with --execute under --no-interaction.
--dry-run flag The default now; accepted so existing invocations keep working, and it wins over --execute.
--include-unconfigured flag Also remove types that have no field definitions AND no records — types that cannot render and hold nothing.

coolms:dynamic-entity:rebuild-schemas#

Rebuild cached schemas and form configs for DynamicEntityTypes (forces inheritance re-resolution).

coolms:dynamic-entity:rebuild-schemas [--alias ALIAS]
Option Description
--alias value Rebuild only the given alias and its descendants (omit to rebuild all types).

coolms:dynamic-entity:schema:sync#

Synchronise generated DB columns for all registered dynamic entity types.

coolms:dynamic-entity:schema:sync [--entity-alias ENTITY-ALIAS]
Option Description
--entity-alias value Sync only the given entity alias (omit to sync all registered aliases)

coolms:dynamic-entity:type:register#

Register a new DynamicEntityType (taxonomy node) for a dynamic entity.

coolms:dynamic-entity:type:register [--slug SLUG] [--name NAME]
Option Description
--slug value Entity alias / slug (e.g. product, customer)
--name value Human-readable name (e.g. "Product")

Email#

coolms:email:backfill#

Backfill older mail left by the first sync, in bounded UID batches, resumably (ADR-190)

coolms:email:backfill [--mailbox MAILBOX] [--max-batches MAX-BATCHES]
Option Description
--mailbox value Backfill only this mailbox (RFC-4122 UUID); default is every mailbox with older mail left
--max-batches value Batches to run this invocation

coolms:email:encrypt-bodies#

Encrypt at rest any email bodies still stored in plaintext (M8.b backfill)

coolms:email:encrypt-bodies [--dry-run]
Option Description
--dry-run flag Report what would be sealed without writing anything

coolms:email:fetch#

Fetch new mail from connected mailboxes into the message index

coolms:email:fetch [--mailbox MAILBOX] [--folder FOLDER]
Option Description
--mailbox value Sync only this mailbox (RFC-4122 UUID); default is all enabled mailboxes
--folder value IMAP folder to sync

coolms:email:idle#

Watch a mailbox in real time over IMAP IDLE, syncing on each new message (M8.a.2c daemon)

coolms:email:idle [--mailbox MAILBOX] [--folder FOLDER] [--idle-timeout IDLE-TIMEOUT]
Option Description
--mailbox value Watch this mailbox (RFC-4122 UUID); required when more than one mailbox is enabled
--folder value IMAP folder to watch
--idle-timeout value Seconds each IDLE read blocks before re-checking the connection + stop signal

coolms:email:idle-run#

The IMAP IDLE worker: watch every connected mailbox INBOX in real time, picking up changes without a restart (ADR-190)

coolms:email:idle-run [--idle-timeout IDLE-TIMEOUT] [--time-limit TIME-LIMIT]
Option Description
--idle-timeout value IDLE window per mailbox per round, seconds
--time-limit value Exit cleanly after this many seconds so the supervisor recycles the process (0 = never)

coolms:email:import#

Import a .mbox archive or a single .eml file into a mailbox

coolms:email:import [--mailbox MAILBOX] [--folder FOLDER] [--mbox] [--] <file>
Option Description
file required Path to a .eml or .mbox file
--mailbox value Target mailbox id (RFC-4122 UUID)
--folder value Destination folder
--mbox flag Treat the file as an mbox archive (auto-detected for .mbox files)

coolms:email:import-pst#

Import an Outlook .pst archive into a mailbox (requires readpst / pst-utils)

coolms:email:import-pst [--mailbox MAILBOX] [--folder FOLDER] [--] <file>
Option Description
file required Path to a .pst archive
--mailbox value Target mailbox id (RFC-4122 UUID)
--folder value Import every message into this one folder instead of mirroring the PST folder names

coolms:email:mailbox:audit-owners#

Report enabled personal mailboxes whose owner account no longer exists; --stop switches them off (ADR-192)

coolms:email:mailbox:audit-owners [--stop]
Option Description
--stop flag Switch off every orphaned personal mailbox found.

coolms:email:mailbox:health#

The number that should be zero: connected mailboxes with no import in the freshness window (ADR-190)

coolms:email:mailbox:health [--stale-minutes STALE-MINUTES]
Option Description
--stale-minutes value A mailbox is unwatched after this many minutes without a completed import

coolms:email:notify#

The mail notifier: hold IMAP IDLE on every connected mailbox; queue a fetch on new mail

coolms:email:notify [--time-limit TIME-LIMIT] [--reidle REIDLE] [--refresh REFRESH]
Option Description
--time-limit value Exit cleanly after N seconds (0 = never)
--reidle value Re-enter IDLE after N seconds
--refresh value Re-read the connected mailboxes every N seconds

coolms:email:oauth:doctor#

Report mailbox OAuth configuration — real credentials, shipped placeholders, and the callback URI (ADR-190)

coolms:email:oauth:doctor [--host HOST] [--scheme SCHEME]
Option Description
--host value Generate the callback URI for this host (e.g. coolms2.local:8080) instead of from DEFAULT_URI
--scheme value Scheme to pair with --host

coolms:email:redecode-headers#

Re-decode RFC 2047 encoded-word subjects and display names stored raw by the pre-fix fetch path (ADR-190)

coolms:email:redecode-headers [--dry-run]
Option Description
--dry-run flag Report what would change without writing

coolms:email:reextract-snippets#

Rebuild snippets that still carry a mail's CSS, from the stored .eml (ADR-190 finding 3)

coolms:email:reextract-snippets [--dry-run]
Option Description
--dry-run flag Report what would change without writing

coolms:email:search:reindex#

Rebuild the email search index from all stored messages (M8.d)

coolms:email:search:reindex [--reset]
Option Description
--reset flag Drop all existing documents before reindexing

coolms:email:sweep-report#

Per mailbox: did the 2-minute sweep ever find mail first while its IDLE was live? (read-only)

coolms:email:sweep-report [--hours HOURS]
Option Description
--hours value The window, in UTC hours back from now

Form#

coolms:form:create#

Interactively create a new form configuration.

coolms:form:create [--format FORMAT] [--data-class DATA-CLASS] [--dir DIR] [--] [<form_id>]
Option Description
form_id optional Form ID in snake_case (e.g. user_profile). If omitted, an interactive prompt is shown.
--format value Storage format: yaml | php | db. If omitted, an interactive choice is shown.
--data-class value Data class FQCN (optional). Pass empty string to skip.
--dir value Output directory override. If omitted, ConfigManager default is used.

coolms:form:edit#

Interactively edit an existing form configuration.

coolms:form:edit [-f|--format [FORMAT]] [--] <form-id>
Option Description
form-id required ID of the form config to edit
--format / -f value Storage format to write (yaml/php/db)

Identity#

coolms:admin:credential#

Set an administrator's own elevation credential — their password and their second factor, replacing any factor already registered.

coolms:admin:credential [--password-file PASSWORD-FILE] [--code CODE] [--secret SECRET] [--keep-factor] [--] <account>
Option Description
account required The administrator, by a sign-in identifier: email, username or phone
--password-file value Read the new password from this file (first line) instead of prompting; never pass it on the command line
--code value The six-digit code that confirms the factor, instead of prompting
--secret value Enrol this base32 TOTP secret instead of generating one (provisioning; the code must come from it)
--keep-factor flag Set the password only; leave the factor as it is, none included

coolms:fixtures:media-users#

Create fixture users for Media Library security E2E tests (dev/test only)

coolms:fixtures:media-users

coolms:fixtures:test-account#

Create one test account on a reserved domain, the password read from stdin (dev/test only)

coolms:fixtures:test-account [--unconfirmed] [--credential-file CREDENTIAL-FILE] [--group GROUP] [--member-of MEMBER-OF] [--deactivate] [--run-id RUN-ID] [--reactivate] [--] <email>
Option Description
email required The address, on a reserved domain such as example.test
--unconfirmed flag Leave the address unconfirmed
--credential-file value Generate the password instead of reading stdin, and write it to this NEW file (mode 0600) with the address and the account id. The password is printed nowhere; a client reads the file by path.
--group value The primary group of a new account
--member-of value Also make the new account a member of this group (repeatable), never its primary group. NOTE: --member-of admin makes an EFFECTIVE administrator, not a plain member
--deactivate flag Take an account this command made out of use, when the check that used it ends; --run-id names the run. Its sessions and device tokens end. No operator is named.
--run-id value With --deactivate: the caller's run id, recorded as the reason
--reactivate flag Put an INACTIVE account this command made back in use, with a new generated password written to --credential-file (required). For a check that deactivates it again when it ends.

coolms:group:create#

Create a new group

coolms:group:create [-d|--description [DESCRIPTION]] [-s|--system] [--] <name>
Option Description
name required Group name
--description / -d value Group description
--system / -s flag Mark as system group

coolms:identity:add-to-groups#

Make an account a member of the named groups (dry run unless --execute)

coolms:identity:add-to-groups [--execute] [--force] [--] <identifier> <groups>...
Option Description
identifier required The account: its email address or username
groups required The groups, by name
--execute flag Add them; otherwise only list and count
--force flag Do not ask; needed for --execute unattended

coolms:identity:attach-identifier#

Give an account an addressable identifier and send it a confirmation (or, as a fallback, assert one)

coolms:identity:attach-identifier [--reason REASON] [--assert-confirmed] [--by BY] [--primary] [--dry-run] [--] <account> <identifier>
Option Description
account required The account, named by any identifier it holds (a username is the usual case) or by its uuid
identifier required The addressable identifier to attach — an email address today, a phone number when a way to confirm one exists
--reason value Why an operator is putting this address on this account. Recorded; the command refuses without it.
--assert-confirmed flag Confirm it on the operator's word instead of sending a confirmation. The fallback for when no channel can carry one; refused while a channel answers.
--by value The operator's own account, named the same way as the target. Required with --assert-confirmed: it is who the confirmation is attributed to.
--primary flag Also make it the primary identifier. Off by default: promotion changes what five other surfaces display as the person. Requires --assert-confirmed, because the aggregate will not promote an unconfirmed row.
--dry-run flag Report what would happen and change nothing

coolms:identity:deactivate-account#

Take a person's account out of use, recording who did it and why (never a service account)

coolms:identity:deactivate-account [--reason REASON] [--by BY] [--dry-run] [--] <account>
Option Description
account required The account, named by any identifier it holds or by its uuid
--reason value Why the account is being taken out of use. Recorded on the account; refused without it.
--by value The operator's own account, named the same way. Recorded as who did it; refused without it.
--dry-run flag Report what would happen and change nothing

coolms:identity:fetch-breached-list#

Download the breached-password corpus the password policy checks against (offline afterwards).

coolms:identity:fetch-breached-list [--source SOURCE] [--limit LIMIT]
Option Description
--source value Where to read the plaintext list from
--limit value Keep at most this many entries

coolms:identity:footprints#

Print what each module declares it does with a person's data on account deletion

coolms:identity:footprints

coolms:identity:hash-access-tokens#

Replace each access token still stored raw with its SHA-256, in place. Dry run by default.

coolms:identity:hash-access-tokens [--dry-run] [--execute] [--force]
Option Description
--dry-run flag The default; accepted, and it wins over --execute.
--execute flag Hash them. Without it the command reports and changes nothing.
--force flag Do not ask. Required with --execute under --no-interaction.

coolms:identity:prune-expired-credentials#

Delete expired access tokens, refresh tokens, and verification codes past their grace window.

coolms:identity:prune-expired-credentials [--dry-run] [--execute] [--force]
Option Description
--dry-run flag The default now; accepted, and it wins over --execute.
--execute flag Delete. Without it the command reports and changes nothing.
--force flag Do not ask. Required with --execute under --no-interaction.

coolms:identity:prune-identifierless-users#

Report the non-system users without a primary identifier (a number that should be zero) and, with --apply, remove them through the deletion flow

coolms:identity:prune-identifierless-users [--apply] [--force] [--as AS]
Option Description
--apply flag Delete the rows through the account deletion flow with a grace period of zero; without it, report only
--force flag Do not ask. Required with --apply under --no-interaction.
--as value The identifier of the administrator on whose record the deletions are requested; needed with --apply unless a person is signed in

coolms:identity:remove-from-groups#

Take an account out of the named groups (dry run unless --execute)

coolms:identity:remove-from-groups [--primary PRIMARY] [--execute] [--force] [--] <identifier> <groups>...
Option Description
identifier required The account: its email address or username
groups required The groups, by name
--primary value The new primary group, when a named group is it
--execute flag Remove them; otherwise only list and count
--force flag Do not ask; needed for --execute unattended

coolms:identity:remove-probe-accounts#

Delete the probe accounts a census file lists — only those whose every identifier is on a reserved domain.

coolms:identity:remove-probe-accounts [--list LIST] [--execute] [--force] [--dry-run] [--administrators]
Option Description
--list value The census: a file of account ids, one per line.
--execute flag Delete them. Without it the command prints the census and changes nothing.
--force flag Do not ask. Required with --execute under --no-interaction.
--dry-run flag Report only (the default); wins over --execute.
--administrators flag Also remove listed administrators that are INACTIVE; an active one is refused either way.

coolms:identity:restore-administrator#

BREAK-GLASS: make an existing account an effective administrator again (dry run unless --execute)

coolms:identity:restore-administrator [--execute] [--force] [--] <account>
Option Description
account required One of its identifiers (an email address), or its id
--execute flag Restore it; otherwise only say what would change
--force flag Do not ask; needed for --execute unattended

coolms:identity:retire-admin-edges#

Remove every grant edge from the admin group (dry run unless --execute)

coolms:identity:retire-admin-edges [--execute] [--force] [--first FIRST]
Option Description
--execute flag Remove them; otherwise only list and count
--force flag Do not ask; needed for --execute unattended
--first value List the account with this identifier first

coolms:identity:retire-host-groups#

Remove every membership of the retired host groups, console and desk (dry run unless --execute)

coolms:identity:retire-host-groups [--execute] [--force]
Option Description
--execute flag Remove them; otherwise only list and count
--force flag Do not ask; needed for --execute unattended

coolms:identity:user:list#

List people and their roles.

coolms:identity:user:list [--role ROLE] [--limit LIMIT]
Option Description
--role value Only people holding this role.
--limit value How many to read.

coolms:user:create#

Create a new user

coolms:user:create [-p|--password [PASSWORD]] [-f|--firstname [FIRSTNAME]] [-l|--lastname [LASTNAME]] [-g|--group [GROUP]] [-G|--groups [GROUPS]] [--admin] [--inactive] [--reason REASON] [--] <identifier>
Option Description
identifier required Identifier (email address, phone number, or username)
--password / -p value Password (will prompt if not provided)
--firstname / -f value First name
--lastname / -l value Last name
--group / -g value Primary group name
--groups / -G value Additional groups
--admin flag Create the system admin user (cannot log in; owns the VFS)
--inactive flag Create user as inactive
--reason value Why the account is created inactive. Required with --inactive; recorded on the account.

Lead#

coolms:lead:backfill-contacts#

Link every existing lead to a Contact (de-dup by email), stamping contact_id (idempotent).

coolms:lead:backfill-contacts [--dry-run] [--batch BATCH]
Option Description
--dry-run flag Report how many leads WOULD be linked, without writing.
--batch value Rows fetched + processed per iteration.

Media#

coolms:media:fix-collection-modes#

Grant group-write (0o775) to existing /media collections that predate the group-writable model.

coolms:media:fix-collection-modes [--execute]
Option Description
--execute flag Persist the chmod (otherwise dry-run only).

coolms:media:gc#

Clean up orphan VFS Nodes left by failed Media uploads (no extras.mediaAsset marker).

coolms:media:gc [--execute] [--force] [--limit LIMIT] [--verbose-paths]
Option Description
--execute flag Actually delete orphans. Without this flag the command is a dry-run.
--force flag Do not ask. Required with --execute under --no-interaction.
--limit value Max orphans processed per run.
--verbose-paths flag List every orphan path. Off by default to keep large fleets tractable.

coolms:media:merge-alt-into-title#

Merge media alt/caption into the Node title/description columns (+ i18n overrides), then drop the alt/caption keys.

coolms:media:merge-alt-into-title [--execute]
Option Description
--execute flag Persist the merge (otherwise dry-run only).

coolms:media:migrate-translations#

Reshape media extras.translations into canonical extras.{field} + extras.i18n overrides.

coolms:media:migrate-translations [--execute]
Option Description
--execute flag Persist the reshape. Without this flag the command is a dry-run.

Messaging#

coolms:outbox:prune#

Prune delivered outbound rows and old journal rows past their retention windows.

coolms:outbox:prune [--dry-run] [--execute] [--force]
Option Description
--dry-run flag The default now; accepted, and it wins over --execute.
--execute flag Delete. Without it the command reports and changes nothing.
--force flag Do not ask. Required with --execute under --no-interaction.

coolms:outbox:relay#

Publish committed transactional-outbox rows to their consumers.

coolms:outbox:relay [--batch BATCH] [--status]
Option Description
--batch value Maximum number of messages to publish in this run.
--status flag Publish nothing; print the undelivered backlog and exit 1 when any row has waited longer than a minute (the number that should be zero while a relay runs).

coolms:navi:entry:drop#

Remove named entries from a section's public navigation tree (dry-run unless --force).

coolms:navi:entry:drop [--force] [--] <section> <paths>...
Option Description
section required Site-section slug, e.g. coolms-site
paths required Entry paths to remove, e.g. /web /substrate
--force flag Actually remove them. Without this the command only reports.

coolms:navi:export#

Export a NaviGraph tree to a YAML config file.

coolms:navi:export [-o|--output OUTPUT] [--stdout] [--] <tree>
Option Description
tree required Tree slug (e.g. navi.admin, navi.toolbar.vfs)
--output / -o value Output file path (relative to project root). Defaults to var/navi-export/{slug}.yaml
--stdout flag Print YAML to stdout instead of writing file

coolms:navi:list#

List NaviTrees and their node structure.

coolms:navi:list [--host [HOST]] [--] [<slug>]
Option Description
slug optional Only this tree.
--host value Filter by host (exact match or global)

coolms:navi:node:create#

Create a new NaviNode within a NaviTree.

coolms:navi:node:create [--slug [SLUG]] [--section [SECTION]] [--parent [PARENT]] [--template [TEMPLATE]] [--] <tree-slug> <path> <title>
Option Description
tree-slug required Slug of the parent NaviTree
path required URL path (e.g. /, /blog, /admin/users)
title required Display title (menu label, )
--slug value Node slug (auto-derived from path if omitted)
--section value SiteSection slug to handle this path
--parent value Parent NaviNode UUID
--template value Template override (e.g. pages/landing.html.dtmpl)

coolms:navi:node:drop#

Remove one navigation node by path.

coolms:navi:node:drop <path> [<tree>]
Option Description
path required The node path, e.g. /content/pages.
tree optional The tree slug.

coolms:navi:prune#

Delete navigation nodes the seeder wrote that no module declares any more. A dry run unless --execute.

coolms:navi:prune [--execute] [--force] [--] [<module>]
Option Description
module optional Only the trees this module touches (other modules' nodes are kept)
--execute flag Delete. Without it the command reports what it would delete and changes nothing.
--force flag Do not ask. Required with --execute under --no-interaction.

coolms:navi:seed#

Seed NaviGraph nodes contributed by all modules (additive; the prune is coolms:navi:prune).

coolms:navi:seed [--module MODULE] [--prune] [-f|--force] [--dry-run] [--] [<module>]
Option Description
module optional Seed only this module (e.g. "navi", "media"); omit to seed all
--module value Same as the argument.
--prune flag Moved to coolms:navi:prune; here it only refuses.
--force / -f flag Re-seed even unchanged nodes (manual edits still preserved)
--dry-run flag Compute result without persisting anything

coolms:navi:tree:create#

Create a new NaviTree (navigation tree for a host or global).

coolms:navi:tree:create [--host [HOST]] [--] <slug> <label>
Option Description
slug required Unique slug (e.g. navi.example.com, navi.admin)
label required Human-readable label (e.g. "Main Navigation")
--host value Bind to a specific host (e.g. example.com)

coolms:navi:unseed#

Remove all NaviGraph nodes seeded by a specific module.

coolms:navi:unseed [-m|--module MODULE] [--execute] [--force] [--dry-run] [--] [<module>]
Option Description
module optional Module name whose nodes will be removed
--module / -m value Module name (deprecated: use positional argument instead)
--execute flag Delete. Without it the command counts and changes nothing.
--force flag Do not ask. Required with --execute under --no-interaction.
--dry-run flag The default now; accepted, and it wins over --execute.

Realtime#

coolms:realtime:presence#

Who is present on realtime channels, read-only; --watch prints each change, stamped.

coolms:realtime:presence [--watch WATCH] [--every EVERY] [--] <channels>...
Option Description
channels required The channels, e.g. rtc.user.
--watch value Keep asking for this many seconds
--every value Milliseconds between asks with --watch

Rtc#

coolms:rtc:end-abandoned-calls#

End connected calls nobody has been live on for the abandon window (dry run unless --execute)

coolms:rtc:end-abandoned-calls [--dry-run] [--execute] [--force]
Option Description
--dry-run flag The default; accepted, and it wins over --execute.
--execute flag End the calls listed. Without it, nothing is changed.
--force flag Do not ask. Required with --execute under --no-interaction.

coolms:rtc:turn-uris#

The TURN URIs each public authority is handed out, as a call's ICE servers give them.

coolms:rtc:turn-uris [--authority AUTHORITY]
Option Description
--authority value Only this configured entry, one URI per line.

Scheduler#

coolms:public-versioning:check#

Each public repository of a GitHub organization: is its versioning rule the canonical one

coolms:public-versioning:check [--ref REF] [--] <organization>
Option Description
organization required The GitHub organization
--ref value repository=branch: read that branch instead of the default one

coolms:scheduler:run#

Dispatch every due schedule (enabled + nextRunAt <= now). Invoke from OS cron at a 1-minute tick.

coolms:scheduler:run [--dry-run]
Option Description
--dry-run flag List due schedules without dispatching their messages.

coolms:scheduler:worker-starts#

Each worker's last start (generation, commit) and the served commit, as JSON

coolms:scheduler:worker-starts

messenger:stop-workers#

Stop workers after their current message

messenger:stop-workers

coolms:search:prune-query-log#

Delete logged searches older than the configured retention window.

coolms:search:prune-query-log [--dry-run] [--execute] [--force]
Option Description
--dry-run flag The default now; accepted, and it wins over --execute.
--execute flag Delete. Without it the command reports and changes nothing.
--force flag Do not ask. Required with --execute under --no-interaction.

coolms:search:reindex#

Rebuild the content search index from all published content.

coolms:search:reindex

Seo#

coolms:seo:redirect:add#

Create or update a redirect rule (source path → target, per site section).

coolms:seo:redirect:add [--section SECTION] [--status STATUS] [--] <source> <target>
Option Description
source required Incoming request path to match (e.g. "/old-page").
target required Destination path or absolute URL (e.g. "/new-page").
--section value Site-section slug the rule applies to.
--status value HTTP redirect status (301, 302, 307, 308).

Settings#

coolms:secret:list#

List the names of secrets in the encrypted secrets file (values never shown).

coolms:secret:list

coolms:secret:remove#

Remove a secret from the encrypted secrets file.

coolms:secret:remove <key>
Option Description
key required Logical secret key to remove

coolms:secret:set#

Set a secret in the encrypted secrets file.

coolms:secret:set <key> [<value>]
Option Description
key required Logical secret key, e.g. stripe_api_key
value optional Secret value (omit for a hidden prompt)

Spreadsheet#

coolms:spreadsheet:import#

Convert an uploaded .xlsx template into an editable native .dsheet

coolms:spreadsheet:import [--apply] [--force] [--] <path>
Option Description
path required VFS path of the .xlsx to convert
--apply flag Actually write the .dsheet beside it
--force flag Overwrite an existing .dsheet at the target path

Sync#

coolms:sync:edge:list#

List the edge nodes registered in the controller sync fleet.

coolms:sync:edge:list

coolms:sync:edge:provision#

Mint (or rotate) the machine identity + bearer tokens for a registered sync edge.

coolms:sync:edge:provision [--slug SLUG] [--rotate] [--credential-file CREDENTIAL-FILE]
Option Description
--slug value The registered edge to provision (see coolms:sync:edge:list).
--rotate flag Revoke ALL existing tokens for the edge user before issuing the new pair (leaked-credential response).
--credential-file value Where the pair is written, 0600 (default var/sync-edges/.credentials.json). The tokens are never printed.

coolms:sync:edge:register#

Register / re-configure an edge node in the controller sync fleet (upsert by slug).

coolms:sync:edge:register [--slug SLUG] [--name NAME] [--url URL] [--credential-ref CREDENTIAL-REF] [--principal PRINCIPAL] [--scope-tiers SCOPE-TIERS] [--scope-sections SCOPE-SECTIONS] [--disabled]
Option Description
--slug value Stable edge handle (lowercase slug).
--name value Human display label.
--url value The edge's own sync-ingest base URL (http/https).
--credential-ref value Secret-store reference for the per-edge push bearer (NOT the raw token). Optional for a pull-only edge.
--principal value The Identity user (UUID or email) this edge authenticates AS when it calls in. Required for the edge to be able to ack; omit to leave it unbound.
--scope-tiers value Selective-sync scope: comma-separated backup tiers this edge may receive (e.g. "config" or "config,content"). Omit for the whole synced set. Only enforced for a --principal-bound edge.
--scope-sections value Selective-sync sections axis (B.3.4): comma-separated site-section slugs; the edge receives only those /content/ subtrees (shared trees always flow). Composes with --scope-tiers.
--disabled flag Register the edge disabled (receives no pushes).

coolms:sync:edge:remove#

Remove an edge node from the controller sync fleet (drops its cursor too).

coolms:sync:edge:remove [--slug SLUG] [--force]
Option Description
--slug value Slug of the edge to remove.
--force flag Skip the confirmation prompt (for automation).

coolms:sync:nudge-edges#

Nudge every enabled edge to pull now (controller side). Safe + idempotent.

coolms:sync:nudge-edges

coolms:sync:pull#

Pull + restore the controller's current snapshot (edge side). WRITES to the DB — use --dry-run first.

coolms:sync:pull [--controller CONTROLLER] [--token TOKEN] [--tier TIER] [--only ONLY] [--reconcile-deletes] [--dry-run] [--force]
Option Description
--controller value Base URL of the controller (e.g. https://controller.internal).
--token value Bearer token of the edge/sync principal on the controller.
--tier value Tiers to pull (comma list): config,content,runtime,all.
--only value Restrict the restore to these backup keys (comma list).
--reconcile-deletes flag ALSO delete local rows absent from the snapshot (propagate controller-side deletes). DESTRUCTIVE; only capable contributors participate.
--dry-run flag Fetch + unpack + print the plan without writing anything.
--force flag Skip the confirmation prompt (for automation).

coolms:sync:pull-changes#

Pull + apply the controller's change feed (edge side, catch-up). WRITES to the DB — use --dry-run first.

coolms:sync:pull-changes [--controller CONTROLLER] [--token TOKEN] [--ack-as ACK-AS] [--limit LIMIT] [--overlap OVERLAP] [--max-batches MAX-BATCHES] [--dry-run] [--force]
Option Description
--controller value Base URL of the controller. Defaults to the configured upstream (COOLMS_SYNC_CONTROLLER_URL).
--token value Bearer token of the edge/sync principal. Required with --controller; otherwise resolved from the secret store.
--ack-as value Report the applied cursor to the controller as this edge slug (best-effort). Defaults to the configured COOLMS_SYNC_EDGE_SLUG.
--limit value Change-feed page size.
--overlap value Commit-ordering safe-watermark: re-read this many seqs below the cursor.
--max-batches value Safety cap on the number of pages applied in one run.
--dry-run flag Page + print the plan without applying or advancing the cursor.
--force flag Skip the confirmation prompt (for automation).

Terminal#

coolms:terminal:events-tail#

Show recent domain events from the event log.

coolms:terminal:events-tail [--filter FILTER] [--limit LIMIT]
Option Description
--filter value Only events whose name starts with this.
--limit value How many to show.

coolms:terminal:exposures#

List the console commands exposed to the terminal.

coolms:terminal:exposures [--background]
Option Description
--background flag Only the ones that run in a worker.

coolms:terminal:rql-explain#

Show the SQL an RQL query generates.

coolms:terminal:rql-explain [--entity ENTITY] [--] [<query>]
Option Description
query optional The RQL query, e.g. "filter=title cn news".
--entity value Which entity to explain against.

Theme#

coolms:theme:activate#

Activate an installed theme (optionally for a specific section)

coolms:theme:activate [-s|--section SECTION] [--] <slug>
Option Description
slug required Theme slug to activate
--section / -s value SiteSection slug to bind this theme to (optional)

coolms:theme:install#

Install a theme from a registered provider

coolms:theme:install [--with-demo] [-f|--force] [--] <slug>
Option Description
slug required Theme slug (e.g. coolms-default)
--with-demo flag Seed demo content after installation
--force / -f flag Reinstall even if already installed — updates resolved chain

coolms:theme:list#

List all installed themes

coolms:theme:list

coolms:theme:publish#

Publish a theme by copying its templates to the VFS

coolms:theme:publish [--overwrite] [--assets] [--] <slug>
Option Description
slug required Theme slug to publish
--overwrite flag Replace VFS templates that already exist. Without it they are kept, because a published template may have been edited in the admin.
--assets flag Also refresh public/themes// from the package. Stylesheets and images are served from there, not from the package.

coolms:theme:reset#

Remove a theme's published VFS templates (revert to filesystem-served state)

coolms:theme:reset [--assets] [--] <slug>
Option Description
slug required Theme slug to reset
--assets flag Also remove public/themes//. Nothing serves those files from the filesystem, so the site will 404 on its stylesheet until they are republished.

coolms:theme:seed#

Seed a theme's starting content into a section (idempotent; refuses edited pages).

coolms:theme:seed [-s|--section SECTION] [-t|--theme THEME] [--force]
Option Description
--section / -s value SiteSection slug to seed into
--theme / -t value Theme slug whose manifest to seed from
--force flag Overwrite pages that have been edited since they were seeded

coolms:theme:uninstall#

Uninstall (remove) a theme from the repository

coolms:theme:uninstall [-f|--force] [--] <slug>
Option Description
slug required Theme slug to uninstall
--force / -f flag Deactivate and uninstall even if the theme is currently active

VFS#

coolms:elevation:shadow-report#

What the log-only elevation gates saw, and whether it confirms the ADR-184 baseline.

coolms:elevation:shadow-report [--since SINCE] [--recount]
Option Description
--since value Count from this day (YYYY-MM-DD); default: everything recorded
--recount flag Re-take the static count on the live tree (loads every node; console-time only)

coolms:vfs:api-resources#

Bring the API resource nodes back to the routes and the explicit definitions (ADR-011) — dry run unless --execute.

coolms:vfs:api-resources [--execute] [--restore-explicit] [--force] [--add-only] [--converge]
Option Description
--execute flag Create the missing nodes. Without it the command reports and changes nothing.
--restore-explicit flag With --execute, also re-apply every explicit definition's owner, group and mode to its node.
--force flag Do not ask. Required with --execute under --no-interaction.
--add-only flag Create the missing nodes and change nothing that exists. Needs no --force: it only adds.
--converge flag Create the missing nodes and bring every declared or defined node to its declaration (owner, group, mode), only where it differs. A dry run unless --execute.

coolms:vfs:api-resources:modules#

The route-to-module map (ADR-200): per module, its /api/v1 routes, its roots, its rootless routes.

coolms:vfs:api-resources:modules [--routes]
Option Description
--routes flag Also list every route with its module and root.

coolms:vfs:assign-template#

Assign a theme template to a VFS path and enable SSR rendering.

coolms:vfs:assign-template [-r|--recursive] [--] <path> <template>
Option Description
path required VFS path to the file or directory (e.g. /pages).
template required Theme-relative template path (e.g. pages/page.html.dtmpl).
--recursive / -r flag Apply to all file descendants of the given directory.

coolms:vfs:backfill-systemic-titles#

Stamp Node.title on module-root and SiteSection-backed VFS dirs.

coolms:vfs:backfill-systemic-titles [--dry-run]
Option Description
--dry-run flag Report what would be updated without writing.

coolms:vfs:cat#

Print a VFS file.

coolms:vfs:cat [--cwd CWD] [--home HOME] [--as AS] [--field FIELD] [--] <path>
Option Description
path required The file to print.
--cwd value The directory paths are relative to.
--home value The directory ~ expands to.
--as value Act as this person (outside the terminal).
--field value body (default) or extras.

coolms:vfs:chmod#

Change a VFS node mode.

coolms:vfs:chmod [--cwd CWD] [--home HOME] [--as AS] [--] <mode> <path>
Option Description
mode required Octal (0644) or symbolic (u+rw).
path required The node to change.
--cwd value The directory paths are relative to.
--home value The directory ~ expands to.
--as value Act as this person (outside the terminal).

coolms:vfs:chown#

Change a VFS node owner.

coolms:vfs:chown [--cwd CWD] [--home HOME] [--as AS] [--] <owner> <path>
Option Description
owner required A person, optionally person:group.
path required The node to change.
--cwd value The directory paths are relative to.
--home value The directory ~ expands to.
--as value Act as this person (outside the terminal).

coolms:vfs:cleanup-tmp#

Remove files in /tmp and ~/tmp older than the configured TTL.

coolms:vfs:cleanup-tmp [--ttl TTL] [--execute] [--force] [--dry-run]
Option Description
--ttl value Files older than this many seconds are deleted. Falls back to the COOLMS_TMP_TTL_SECONDS env var, then to 3600.
--execute flag Delete. Without it the command lists what it would delete and changes nothing.
--force flag Do not ask. Required with --execute under --no-interaction.
--dry-run flag The default now; accepted, and it wins over --execute.

coolms:vfs:closed-spaces#

Close what already exists in each declared closed space to everyone outside its group

coolms:vfs:closed-spaces [--execute] [--force] [--dry-run]
Option Description
--execute flag Change the nodes. Without it the command prints what it would change and changes nothing.
--force flag Do not ask. Required with --execute under --no-interaction.
--dry-run flag Report only (the default); wins over --execute.

coolms:vfs:cp#

Copy a VFS file or directory.

coolms:vfs:cp [--cwd CWD] [--home HOME] [--as AS] [-r|--recursive] [--] <source> <target>
Option Description
source required What to copy.
target required Where to copy it.
--cwd value The directory paths are relative to.
--home value The directory ~ expands to.
--as value Act as this person (outside the terminal).
--recursive / -r flag Copy a directory and everything under it.

coolms:vfs:ensure-home-dirs#

Set up the missing home of every account that should have one, as account creation does.

coolms:vfs:ensure-home-dirs [--dry-run] [--user USER]
Option Description
--dry-run flag Report what would be set up without making any changes.
--user value Only this account, by its id.

coolms:vfs:find#

Search VFS nodes by name or type.

coolms:vfs:find [--cwd CWD] [--home HOME] [--as AS] [--name NAME] [--type TYPE] [--] [<path>]
Option Description
path optional Where to search.
--cwd value The directory paths are relative to.
--home value The directory ~ expands to.
--as value Act as this person (outside the terminal).
--name value Match this name.
--type value file or dir.

coolms:vfs:gc#

Run garbage collection on VFS storage

coolms:vfs:gc [--execute] [--force] [--dry-run]
Option Description
--execute flag Delete. Without it the command reports and changes nothing.
--force flag Do not ask. Required with --execute under --no-interaction.
--dry-run flag The default now; accepted, and it wins over --execute.

coolms:vfs:gc-orphan-home-dirs#

Remove /home/{uuid} directories whose account is gone — empty-only; a folder with files is named, never removed.

coolms:vfs:gc-orphan-home-dirs [--execute] [--force] [--limit LIMIT]
Option Description
--execute flag Remove the empty ones. Without it the command reports and changes nothing.
--force flag Do not ask. Required with --execute under --no-interaction.
--limit value Remove at most this many homes in one run.

coolms:vfs:init#

Initialize the Virtual File System (create root node)

coolms:vfs:init

coolms:vfs:ln#

Create a VFS symbolic link.

coolms:vfs:ln [--cwd CWD] [--home HOME] [--as AS] [--] <target> <link>
Option Description
target required What the link points at.
link required Where the link goes.
--cwd value The directory paths are relative to.
--home value The directory ~ expands to.
--as value Act as this person (outside the terminal).

coolms:vfs:ls#

List a VFS directory.

coolms:vfs:ls [--cwd CWD] [--home HOME] [--as AS] [-l|--long] [-a|--all] [--] [<path>]
Option Description
path optional The directory to list.
--cwd value The directory paths are relative to.
--home value The directory ~ expands to.
--as value Act as this person (outside the terminal).
--long / -l flag Mode, owner, group, size and name.
--all / -a flag Include hidden entries.

coolms:vfs:make-personal-files-private#

Make the files in people's own homes (outside public/ and pages/) that others can read owner-only (0600)

coolms:vfs:make-personal-files-private [--execute] [--force] [--dry-run] [--owner OWNER]
Option Description
--execute flag Change the modes. Without it the command prints the census and changes nothing.
--force flag Do not ask. Required with --execute under --no-interaction.
--dry-run flag Report only (the default); wins over --execute.
--owner value One account's files only (its id).

coolms:vfs:mkdir#

Create a VFS directory.

coolms:vfs:mkdir [--cwd CWD] [--home HOME] [--as AS] [-p|--parents] [--] <path>
Option Description
path required The directory to create.
--cwd value The directory paths are relative to.
--home value The directory ~ expands to.
--as value Act as this person (outside the terminal).
--parents / -p flag Create the missing parents too.

coolms:vfs:mv#

Move or rename a VFS node.

coolms:vfs:mv [--cwd CWD] [--home HOME] [--as AS] [--] <source> <target>
Option Description
source required What to move.
target required Where to move it.
--cwd value The directory paths are relative to.
--home value The directory ~ expands to.
--as value Act as this person (outside the terminal).

coolms:vfs:prune-orphan-site-dirs#

Report (default) or delete /content/{slug} dirs whose SiteSection row is gone; --execute to delete

coolms:vfs:prune-orphan-site-dirs [--execute] [--force] [--empty-only]
Option Description
--execute flag Delete. Without it the command reports and changes nothing.
--force flag Do not ask. Required with --execute under --no-interaction.
--empty-only flag With --execute: delete only directories with no content (rmdir semantics); refuse the rest

coolms:vfs:realign-home-group#

Move nodes under homes' group-owned subdirectories from --from to the group the layout names (dry run unless --execute)

coolms:vfs:realign-home-group [--from FROM] [--execute] [--force]
Option Description
--from value The group the nodes carry today, e.g. document
--execute flag Move them; otherwise only count and list
--force flag Do not ask; needed for --execute unattended

coolms:vfs:rebuild-paths#

Rebuild the materialized_path column for all VFS nodes

coolms:vfs:rebuild-paths

coolms:vfs:reconcile-home-directories#

Report (default) or create missing policy subdirectories under /home/{uuid}; --apply to write

coolms:vfs:reconcile-home-directories [--apply] [--user USER]
Option Description
--apply flag Actually create the missing subdirectories (default is report-only)
--user value Reconcile a single home directory by user UUID

coolms:vfs:remove-listed#

Remove exactly the VFS nodes a census file lists; a directory only when everything in it is listed too.

coolms:vfs:remove-listed [--list LIST] [--execute] [--force] [--dry-run]
Option Description
--list value The census: a file of VFS paths, one per line.
--execute flag Remove them. Without it the command prints the census and changes nothing.
--force flag Do not ask. Required with --execute under --no-interaction.
--dry-run flag Report only (the default); wins over --execute.

coolms:vfs:rm#

Remove a VFS node.

coolms:vfs:rm [--cwd CWD] [--home HOME] [--as AS] [-r|--recursive] [--] <path>
Option Description
path required What to remove.
--cwd value The directory paths are relative to.
--home value The directory ~ expands to.
--as value Act as this person (outside the terminal).
--recursive / -r flag Remove a directory and everything under it.

coolms:vfs:stats#

Show VFS statistics

coolms:vfs:stats

Web#

coolms:csp:classify#

Classify one reported CSP violation after reproducing it: fix, allow, external or unconfirmed

coolms:csp:classify [--reproduced REPRODUCED] [--] <id> <class> <note>
Option Description
id required The row id, or a unique prefix of at least 8 characters (coolms:csp:violations)
class required One of: fix, allow, external, unconfirmed
note required Why
--reproduced value Where and how it was reproduced in the real admin (fix, allow, external)

coolms:csp:violations#

List the CSP violations browsers reported, and how many are classified

coolms:csp:violations [--unclassified]
Option Description
--unclassified flag Only the rows not yet classified

coolms:dev:seed-multilingual#

Seed a two-locale page and a second site section so locale/section variance is reproducible in dev.

coolms:dev:seed-multilingual

coolms:fixtures:baseline#

Seed the minimum data a kernel-booted test needs onto a migrated schema (system users, sections, a theme, an admin, published pages). Idempotent.

coolms:fixtures:baseline [--skip-content]
Option Description
--skip-content flag Stop after identity, VFS and navigation — no demo pages

coolms:setup:default#

Create the default NaviTree and navigation nodes from all registered providers. Idempotent. Reports nodes whose template is NULL; repairs them only with --repair-templates.

coolms:setup:default [--tree TREE] [--repair-templates]
Option Description
--tree value Slug of the NaviTree to create or reuse
--repair-templates flag Also fill a NULL template on a node that already exists, from the provider that declares it

coolms:site:install#

Install the CoolMS product website (bind theme to a section + seed the public menu).

coolms:site:install [-s|--section SECTION]
Option Description
--section / -s value SiteSection slug to bind + populate

coolms:sites:apply#

Generate nginx vhost configs from SiteSection rows. Idempotent. Reload nginx separately to apply.

coolms:sites:apply [--output-dir OUTPUT-DIR] [--dry-run]
Option Description
--output-dir value Directory to write generated *.conf files into
--dry-run flag Render configs to stdout summary without writing files

Crawl the live site and report broken links.

coolms:web:check-links [--base-url BASE-URL] [--host HOST] [--start START] [--max-pages MAX-PAGES] [--external]
Option Description
--base-url value Origin to fetch from (the running server)
--host value Host header / vhost to audit (defaults to the base-url host)
--start value Comma-separated seed paths
--max-pages value Maximum pages to crawl
--external flag Also check external (off-site) links

coolms:web:page-cache:purge#

Empty the full-page SSR cache.

coolms:web:page-cache:purge

coolms:web:scan-templates#

Audit explicit template assignments against installed themes; fails if the active theme cannot resolve one.

coolms:web:scan-templates [--theme THEME] [--strict]
Option Description
--theme value Audit only this theme slug (default: every installed theme).
--strict flag Fail if ANY theme has an unresolved assignment, not only the active one.

Word#

Rewrite stored .ddoc files and their revisions without the links whose target runs code (a dry run unless --apply).

coolms:word:drop-refused-links [--apply] [--force] [--revisions-only] [--path-prefix PATH-PREFIX] [--backup-dir BACKUP-DIR]
Option Description
--apply flag Write the rewritten files and revisions (a dry run without it).
--force flag With --apply and no one at the terminal: act anyway.
--revisions-only flag Only the stored revisions; read no file through the VFS.
--path-prefix value Only the files under this path.
--backup-dir value Where --apply keeps the bytes it replaces.

coolms:word:seed-ddoc-demo#

Write a demo native document (.ddoc) carrying a header, a footer, a footnote and Letter landscape paper, so the document editor has something to open.

coolms:word:seed-ddoc-demo [<path>]
Option Description
path optional Where to write it

Workflow#

coolms:workflow:broadcast-signal#

Broadcast a signal to the Workflow engine, resuming every matching parked token.

coolms:workflow:broadcast-signal [-p|--payload PAYLOAD] [--] <signalName>
Option Description
signalName required BPMN-Lite signal name (e.g. "OrderCancelled", "SystemMaintenance").
--payload / -p value JSON object shallow-merged into every matched process instance's variables.

coolms:workflow:fork-to-vfs#

Fork a contributor-source workflow definition to a locally-editable VFS draft.

coolms:workflow:fork-to-vfs <definitionKey>
Option Description
definitionKey required The workflow definition key to fork (e.g. "identity.verify_new_user_spine").

coolms:workflow:migrate-to-packages#

Upgrade /workflows/{key}/ folders to Packages with the workflow virtual mime + flip deployed version files to read-only.

coolms:workflow:migrate-to-packages [--dry-run]
Option Description
--dry-run flag Preview proposed mutations without persisting.

coolms:workflow:ps#

List workflow process instances.

coolms:workflow:ps [-a|--all] [--] [<aux>]
Option Description
aux optional The bare word aux, for muscle memory.
--all / -a flag Include finished and failed instances.

coolms:workflow:reclaim-external-tasks#

Reclaim expired-locked external tasks back to claimable (worker-died sweep).

coolms:workflow:reclaim-external-tasks [-l|--limit LIMIT]
Option Description
--limit / -l value Maximum number of expired-locked tasks to reclaim in this sweep.

coolms:workflow:revert-to-module#

Revert a forked workflow definition back to the module-shipped contributor baseline.

coolms:workflow:revert-to-module <definitionKey>
Option Description
definitionKey required The workflow definition key to revert (e.g. "identity.verify_new_user_spine").

coolms:workflow:throw-message#

Throw a correlation message at the Workflow engine, resuming any matching parked tokens.

coolms:workflow:throw-message [-p|--payload PAYLOAD] [--] <messageName> <correlationKey>
Option Description
messageName required BPMN-Lite message name (e.g. "UserRegistered", "ResendRequested.email").
correlationKey required Per-instance correlation value (usually a business id — user UUID, order id, ...).
--payload / -p value JSON object shallow-merged into matched process instances' variables.

(CoolMS)#

coolms:doctor#

The number that should be zero: long-running dependencies that do not answer when asked

coolms:doctor [--json]
Option Description
--json flag Machine-readable report on stdout

coolms:field:definition:create#

Create a new field definition.

coolms:field:definition:create [--entity-alias ENTITY-ALIAS] [--name NAME] [--type TYPE] [--label LABEL] [--required] [--sort-order SORT-ORDER]
Option Description
--entity-alias value Entity alias (e.g. product, customer)
--name value Field name (lowercase, underscores allowed)
--type value Field type (text|textarea|richtext|localizedText|localizedTextarea|number|integer|money|boolean|date|select|relation|tags|taxonomy|image|json)
--label value Human-readable label (optional)
--required flag Mark field as required (adds NotBlank constraint)
--sort-order value Sort order in forms (default 0)

coolms:field:definition:list#

List field definitions (optionally filtered by entity alias).

coolms:field:definition:list [<entity-alias>]
Option Description
entity-alias optional Entity alias to filter by (omit to list all)

coolms:field:prune-undeclared#

Delete the system field definitions no module YAML declares any more. A dry run unless --execute.

coolms:field:prune-undeclared [--execute] [--force]
Option Description
--execute flag Delete. Without it the command reports and changes nothing.
--force flag Do not ask. Required with --execute under --no-interaction.

coolms:install#

Install CoolMS2 VFS structure (runs all module VFS installers)

coolms:install

coolms:module:remove#

Stop a module loading and undo what its installation created (deletes no data)

coolms:module:remove [--dry-run] [--] <module>
Option Description
module required Module name, as declared by its bundle
--dry-run flag Report what would be undone and change nothing

coolms:module:restore#

Load a removed module again and put its configuration back

coolms:module:restore [--dry-run] [--] <module>
Option Description
module required Module name, as declared by its bundle
--dry-run flag Report what would be restored and change nothing

coolms:retention:prune#

Run every registered retention sweep (analytics, comments, credentials, ...) in one pass.

coolms:retention:prune [--dry-run]
Option Description
--dry-run flag Report how many rows WOULD be pruned by each registered pruner, without deleting anything.

coolms:secret:generate-key#

Generate a base64 master key for the platform key ring.

coolms:secret:generate-key

coolms:secret:rotate#

Re-seal every sealed value still under the previous master key and report what remains per kind.

coolms:secret:rotate [--dry-run]
Option Description
--dry-run flag Count per kind without re-sealing anything: the number that must be zero before the previous key is dropped

coolms:taxonomy:node:list#

List taxonomy nodes.

coolms:taxonomy:node:list [--type TYPE] [--tree TREE]
Option Description
--type value Filter by discriminator type (e.g. taxonomy_node, dynamic_entity_type)
--tree value Filter by tree code (e.g. dynamic_entity_types, default)

coolms:taxonomy:tree:create#

Create a new TaxonomyTree (named tree scope).

coolms:taxonomy:tree:create [--code CODE] [--name NAME]
Option Description
--code value Unique machine code (e.g. catalog, products)
--name value Human-readable name (e.g. "Product Catalog")

(api)#

api:json-schema:generate#

Generates the JSON Schema for a resource operation.

api:json-schema:generate [--operation OPERATION] [--format FORMAT] [--type TYPE] [--] <resource>
Option Description
resource required The Fully Qualified Class Name (FQCN) of the resource
--operation value The operation name
--format value The response format
--type value The type of schema to generate (input or output)

api:openapi:export#

Dump the Open API documentation

api:openapi:export [-y|--yaml] [-o|--output OUTPUT] [--spec-version SPEC-VERSION] [--api-gateway] [--filter-tags FILTER-TAGS]
Option Description
--yaml / -y flag Dump the documentation in YAML
--output / -o value Write output to file
--spec-version value Open API version to use (2 or 3) (2 is deprecated)
--api-gateway flag Enable the Amazon API Gateway compatibility mode
--filter-tags value Filter only matching x-apiplatform-tag operations

(assets)#

assets:install#

Install bundle's web assets under a public directory

assets:install [--symlink] [--relative] [--no-cleanup] [--] [<target>]
Option Description
target optional The target directory
--symlink flag Symlink the assets instead of copying them
--relative flag Make relative symlinks
--no-cleanup flag Do not remove the assets of the bundles that no longer exist

(cache)#

cache:clear#

Clear the cache

cache:clear [--no-warmup] [--no-optional-warmers]
Option Description
--no-warmup flag Do not warm up the cache
--no-optional-warmers flag Skip optional cache warmers (faster)

cache:pool:clear#

Clear cache pools

cache:pool:clear [--all] [--exclude EXCLUDE] [--] [<pools>...]
Option Description
pools optional A list of cache pools or cache pool clearers
--all flag Clear all cache pools
--exclude value A list of cache pools or cache pool clearers to exclude

cache:pool:delete#

Delete an item from a cache pool

cache:pool:delete <pool> <key>
Option Description
pool required The cache pool from which to delete an item
key required The cache key to delete from the pool

cache:pool:invalidate-tags#

Invalidate cache tags for all or a specific pool

cache:pool:invalidate-tags [-p|--pool POOL] [--] <tags>...
Option Description
tags required The tags to invalidate
--pool / -p value The pools to invalidate on

cache:pool:list#

List available cache pools

cache:pool:list

cache:pool:prune#

Prune cache pools

cache:pool:prune

cache:warmup#

Warm up an empty cache

cache:warmup [--no-optional-warmers]
Option Description
--no-optional-warmers flag Skip optional cache warmers (faster)

(config)#

config:dump-reference#

Dump the default configuration for an extension

config:dump-reference [--format FORMAT] [--] [<name> [<path>]]
Option Description
name optional The Bundle name or the extension alias
path optional The configuration option path
--format value The output format ("yaml", "xml")

(coolms)#

coolms:gen:entity#

Generate a PHP 8.5 entity class from a registered FormConfig.

coolms:gen:entity [--base-class BASE-CLASS] [--table-name TABLE-NAME] [--config-format CONFIG-FORMAT] [--dry-run] [--force] [--] <form_id> <module_name>
Option Description
form_id required Form ID as registered in FormConfigRegistry (e.g. user_profile)
module_name required Target Symfony module name — used for namespace and directory (e.g. Authentication)
--base-class value Override the base class FQCN. Pass empty string to disable auto-detection.
--table-name value Override the Doctrine table name (default: {form_id}s)
--config-format value Format used when back-filling data_class into the form config (yaml|php)
--dry-run flag Print generated code to stdout without writing to disk
--force flag Overwrite an existing file without confirmation

(core)#

about#

Display information about the current project

about

completion#

Dump the shell completion script

completion [--debug] [--] [<shell>]
Option Description
shell optional The shell type (e.g. "bash"), the value of the "$SHELL" env var will be used if this is not given
--debug flag Tail the completion debug log

help#

Display help for a command

help [--format FORMAT] [--raw] [--] [<command_name>]
Option Description
command_name optional The command name
--format value The output format (txt, xml, json, or md)
--raw flag To output raw command help

list#

List commands

list [--raw] [--format FORMAT] [--short] [--] [<namespace>]
Option Description
namespace optional The namespace name
--raw flag To output raw command list
--format value The output format (txt, xml, json, or md)
--short flag To skip describing commands' arguments

(dbal)#

dbal:run-sql#

Executes arbitrary SQL directly from the command line.

dbal:run-sql [--connection CONNECTION] [--depth DEPTH] [--force-fetch] [--] <sql>
Option Description
sql required The SQL statement to execute.
--connection value The named database connection
--depth value Dumping depth of result set (deprecated).
--force-fetch flag Forces fetching the result.

(debug)#

debug:api-resource#

Debug API Platform resources

debug:api-resource <class>
Option Description
class required The class you want to debug

debug:autowiring#

List classes/interfaces you can use for autowiring

debug:autowiring [--all] [--] [<search>]
Option Description
search optional A search filter
--all flag Show also services that are not aliased

debug:config#

Dump the current configuration for an extension

debug:config [--resolve-env] [--format FORMAT] [--] [<name> [<path>]]
Option Description
name optional The bundle name or the extension alias
path optional The configuration option path
--resolve-env flag Display resolved environment variable values instead of placeholders
--format value The output format ("txt", "yaml", "json")

debug:container#

Display current services for an application

debug:container [--show-hidden] [--tag TAG] [--tags] [--parameter PARAMETER] [--parameters] [--types] [--env-var ENV-VAR] [--env-vars] [--format FORMAT] [--raw] [--deprecations] [--] [<name>]
Option Description
name optional A service name (foo)
--show-hidden flag Show hidden (internal) services
--tag value Show all services with a specific tag
--tags flag Display tagged services for an application
--parameter value Display a specific parameter for an application
--parameters flag Display parameters for an application
--types flag Display types (classes/interfaces) available in the container
--env-var value Display a specific environment variable used in the container
--env-vars flag Display environment variables used in the container
--format value The output format ("txt", "xml", "json", "md")
--raw flag To output raw description
--deprecations flag Display deprecations generated when compiling and warming up the container

debug:dotenv#

List all dotenv files with variables and values

debug:dotenv [<filter>]
Option Description
filter optional The name of an environment variable or a filter.

debug:event-dispatcher#

Display configured listeners for an application

debug:event-dispatcher [--dispatcher DISPATCHER] [--format FORMAT] [--raw] [--] [<event>]
Option Description
event optional An event name or a part of the event name
--dispatcher value To view events of a specific event dispatcher
--format value The output format ("txt", "xml", "json", "md")
--raw flag To output raw description

debug:firewall#

Display information about your security firewall(s)

debug:firewall [--events] [--] [<name>]
Option Description
name optional A firewall name (for example "main")
--events flag Include a list of event listeners (only available in combination with the "name" argument)

debug:form#

Display form type information

debug:form [--show-deprecated] [--format FORMAT] [--] [<class> [<option>]]
Option Description
class optional The form type class
option optional The form type option
--show-deprecated flag Display deprecated options in form types
--format value The output format ("txt", "json")

debug:messenger#

List messages you can dispatch using the message buses

debug:messenger [<bus>]
Option Description
bus optional The bus id (one of "event.bus")

debug:router#

Display current routes for an application

debug:router [--show-controllers] [--show-aliases] [--format FORMAT] [--raw] [--sort SORT] [--method METHOD] [--] [<name>]
Option Description
name optional A route name
--show-controllers flag Show assigned controllers in overview
--show-aliases flag Show aliases in overview
--format value The output format ("txt", "xml", "json", "md")
--raw flag To output raw route(s)
--sort value Sort routes by the given column ("name", "path", "method", "scheme", "host")
--method value Filter by HTTP method

debug:security:role-hierarchy#

Dump the role hierarchy as a Mermaid flowchart

debug:security:role-hierarchy [-d|--direction DIRECTION]
Option Description
--direction / -d value The direction of the flowchart [TB|TD|BT|RL|LR]

debug:serializer#

Display serialization information for classes

debug:serializer <class>
Option Description
class required A fully qualified class name

debug:translation#

Display translation messages information

debug:translation [--domain DOMAIN] [--only-missing] [--only-unused] [--all] [--] <locale> [<bundle>]
Option Description
locale required The locale
bundle optional The bundle name or directory where to load the messages
--domain value The messages domain
--only-missing flag Display only missing messages
--only-unused flag Display only unused messages
--all flag Load messages from all registered bundles

debug:twig#

Show a list of twig functions, filters, globals and tests

debug:twig [--filter FILTER] [--format FORMAT] [--] [<name>]
Option Description
name optional The template name
--filter value Show details for all entries matching this filter
--format value The output format ("txt", "json")

debug:validator#

Display validation constraints for classes

debug:validator [--show-all] [--] <class>
Option Description
class required A fully qualified class name or a path
--show-all flag Show all classes even if they have no validation constraints

(doctrine)#

doctrine:cache:clear-collection-region#

Clear a second-level cache collection region

doctrine:cache:clear-collection-region [--em EM] [--all] [--flush] [--] [<owner-class> [<association> [<owner-id>]]]
Option Description
owner-class optional The owner entity name.
association optional The association collection name.
owner-id optional The owner identifier.
--em value Name of the entity manager to operate on
--all flag If defined, all entity regions will be deleted/invalidated.
--flush flag If defined, all cache entries will be flushed.

doctrine:cache:clear-entity-region#

Clear a second-level cache entity region

doctrine:cache:clear-entity-region [--em EM] [--all] [--flush] [--] [<entity-class> [<entity-id>]]
Option Description
entity-class optional The entity name.
entity-id optional The entity identifier.
--em value Name of the entity manager to operate on
--all flag If defined, all entity regions will be deleted/invalidated.
--flush flag If defined, all cache entries will be flushed.

doctrine:cache:clear-metadata#

Clear all metadata cache of the various cache drivers

doctrine:cache:clear-metadata [--em EM] [--flush]
Option Description
--em value Name of the entity manager to operate on
--flush flag If defined, cache entries will be flushed instead of deleted/invalidated.

doctrine:cache:clear-query#

Clear all query cache of the various cache drivers

doctrine:cache:clear-query [--em EM]
Option Description
--em value Name of the entity manager to operate on

doctrine:cache:clear-query-region#

Clear a second-level cache query region

doctrine:cache:clear-query-region [--em EM] [--all] [--flush] [--] [<region-name>]
Option Description
region-name optional The query region to clear.
--em value Name of the entity manager to operate on
--all flag If defined, all query regions will be deleted/invalidated.
--flush flag If defined, all cache entries will be flushed.

doctrine:cache:clear-result#

Clear all result cache of the various cache drivers

doctrine:cache:clear-result [--em EM] [--flush]
Option Description
--em value Name of the entity manager to operate on
--flush flag If defined, cache entries will be flushed instead of deleted/invalidated.

doctrine:database:create#

Creates the configured database

doctrine:database:create [-c|--connection CONNECTION] [--if-not-exists]
Option Description
--connection / -c value The connection to use for this command
--if-not-exists flag Don't trigger an error, when the database already exists

doctrine:database:drop#

Drops the configured database

doctrine:database:drop [-c|--connection CONNECTION] [--if-exists] [-f|--force]
Option Description
--connection / -c value The connection to use for this command
--if-exists flag Don't trigger an error, when the database doesn't exist
--force / -f flag Set this parameter to execute this action

doctrine:debug:entity-listeners#

Lists entity listeners for a given entity

doctrine:debug:entity-listeners [<entity> [<event>]]
Option Description
entity optional The fully-qualified entity class name
event optional The event name to filter by (e.g. postPersist)

doctrine:debug:event-manager#

Lists event listeners for an entity manager

doctrine:debug:event-manager [--em EM] [--] [<event>]
Option Description
event optional The event name to filter by (e.g. postPersist)
--em value The entity manager to use for this command

doctrine:fixtures:load#

Load data fixtures to your database

doctrine:fixtures:load [--append] [--dry-run] [--group GROUP] [--em EM] [--purger PURGER] [--purge-exclusions PURGE-EXCLUSIONS] [--purge-with-truncate]
Option Description
--append flag Append the data fixtures instead of deleting all data from the database first.
--dry-run flag Load the fixtures as a dry run.
--group value Only load fixtures that belong to this group
--em value The entity manager to use for this command.
--purger value The purger to use for this command
--purge-exclusions value List of database tables to ignore while purging
--purge-with-truncate flag Purge data by using a database-level TRUNCATE statement

doctrine:mapping:describe#

Display information about mapped objects

doctrine:mapping:describe [--em EM] [--format FORMAT] [--] <entityName>
Option Description
entityName required Full or partial name of entity
--em value Name of the entity manager to operate on
--format value Output format (text, json)

doctrine:mapping:info#

Show basic information about all mapped entities

doctrine:mapping:info [--em EM]
Option Description
--em value Name of the entity manager to operate on

doctrine:migrations:current#

Outputs the current version

doctrine:migrations:current [--configuration CONFIGURATION] [--em EM] [--conn CONN]
Option Description
--configuration value The path to a migrations configuration file. [default: any of migrations.{php,xml,json,yml,yaml}]
--em value The name of the entity manager to use.
--conn value The name of the connection to use.

doctrine:migrations:diff#

Generate a migration by comparing your current database to your mapping information.

doctrine:migrations:diff [--configuration CONFIGURATION] [--em EM] [--conn CONN] [--namespace NAMESPACE] [--filter-expression FILTER-EXPRESSION] [--formatted] [--nowdoc|--no-nowdoc] [--line-length LINE-LENGTH] [--check-database-platform [CHECK-DATABASE-PLATFORM]] [--allow-empty-diff] [--from-empty-schema]
Option Description
--configuration value The path to a migrations configuration file. [default: any of migrations.{php,xml,json,yml,yaml}]
--em value The name of the entity manager to use.
--conn value The name of the connection to use.
--namespace value The namespace to use for the migration (must be in the list of configured namespaces)
--filter-expression value Tables which are filtered by Regular Expression.
--formatted flag Format the generated SQL.
--nowdoc flag Output the generated SQL as a nowdoc string (enabled by default for formatted queries).
--no-nowdoc flag Negate the "--nowdoc" option
--line-length value Max line length of unformatted lines.
--check-database-platform value Check Database Platform to the generated code.
--allow-empty-diff flag Do not throw an exception when no changes are detected.
--from-empty-schema flag Generate a full migration as if the current database was empty.

doctrine:migrations:dump-schema#

Dump the schema for your database to a migration.

doctrine:migrations:dump-schema [--configuration CONFIGURATION] [--em EM] [--conn CONN] [--formatted] [--nowdoc|--no-nowdoc] [--namespace NAMESPACE] [--filter-tables FILTER-TABLES] [--line-length LINE-LENGTH]
Option Description
--configuration value The path to a migrations configuration file. [default: any of migrations.{php,xml,json,yml,yaml}]
--em value The name of the entity manager to use.
--conn value The name of the connection to use.
--formatted flag Format the generated SQL.
--nowdoc flag Output the generated SQL as a nowdoc string (enabled by default for formatted queries).
--no-nowdoc flag Negate the "--nowdoc" option
--namespace value Namespace to use for the generated migrations (defaults to the first namespace definition).
--filter-tables value Filter the tables to dump via Regex.
--line-length value Max line length of unformatted lines.

doctrine:migrations:execute#

Execute one or more migration versions up or down manually.

doctrine:migrations:execute [--write-sql [WRITE-SQL]] [--dry-run] [--up] [--down] [--query-time] [--configuration CONFIGURATION] [--em EM] [--conn CONN] [--] <versions>...
Option Description
versions required The versions to execute.
--write-sql value The path to output the migration SQL file. Defaults to current working directory.
--dry-run flag Execute the migration as a dry run.
--up flag Execute the migration up.
--down flag Execute the migration down.
--query-time flag Time all the queries individually.
--configuration value The path to a migrations configuration file. [default: any of migrations.{php,xml,json,yml,yaml}]
--em value The name of the entity manager to use.
--conn value The name of the connection to use.

doctrine:migrations:generate#

Generate a blank migration class.

doctrine:migrations:generate [--namespace NAMESPACE] [--configuration CONFIGURATION] [--em EM] [--conn CONN]
Option Description
--namespace value The namespace to use for the migration (must be in the list of configured namespaces)
--configuration value The path to a migrations configuration file. [default: any of migrations.{php,xml,json,yml,yaml}]
--em value The name of the entity manager to use.
--conn value The name of the connection to use.

doctrine:migrations:latest#

Outputs the latest version

doctrine:migrations:latest [--configuration CONFIGURATION] [--em EM] [--conn CONN]
Option Description
--configuration value The path to a migrations configuration file. [default: any of migrations.{php,xml,json,yml,yaml}]
--em value The name of the entity manager to use.
--conn value The name of the connection to use.

doctrine:migrations:list#

Display a list of all available migrations and their status.

doctrine:migrations:list [--configuration CONFIGURATION] [--em EM] [--conn CONN]
Option Description
--configuration value The path to a migrations configuration file. [default: any of migrations.{php,xml,json,yml,yaml}]
--em value The name of the entity manager to use.
--conn value The name of the connection to use.

doctrine:migrations:migrate#

Execute a migration to a specified version or the latest available version.

doctrine:migrations:migrate [--write-sql [WRITE-SQL]] [--dry-run] [--query-time] [--allow-no-migration] [--all-or-nothing [ALL-OR-NOTHING]] [--no-all-or-nothing] [--configuration CONFIGURATION] [--em EM] [--conn CONN] [--] [<version>]
Option Description
version optional The version FQCN or alias (first, prev, next, latest) to migrate to.
--write-sql value The path to output the migration SQL file. Defaults to current working directory.
--dry-run flag Execute the migration as a dry run.
--query-time flag Time all the queries individually.
--allow-no-migration flag Do not throw an exception if no migration is available.
--all-or-nothing value Wrap the entire migration in a transaction.
--no-all-or-nothing flag Disable wrapping the entire migration in a transaction.
--configuration value The path to a migrations configuration file. [default: any of migrations.{php,xml,json,yml,yaml}]
--em value The name of the entity manager to use.
--conn value The name of the connection to use.

doctrine:migrations:rollup#

Rollup migrations by deleting all tracked versions and insert the one version that exists.

doctrine:migrations:rollup [--configuration CONFIGURATION] [--em EM] [--conn CONN]
Option Description
--configuration value The path to a migrations configuration file. [default: any of migrations.{php,xml,json,yml,yaml}]
--em value The name of the entity manager to use.
--conn value The name of the connection to use.

doctrine:migrations:status#

View the status of a set of migrations.

doctrine:migrations:status [--configuration CONFIGURATION] [--em EM] [--conn CONN]
Option Description
--configuration value The path to a migrations configuration file. [default: any of migrations.{php,xml,json,yml,yaml}]
--em value The name of the entity manager to use.
--conn value The name of the connection to use.

doctrine:migrations:sync-metadata-storage#

Ensures that the metadata storage is at the latest version.

doctrine:migrations:sync-metadata-storage [--configuration CONFIGURATION] [--em EM] [--conn CONN]
Option Description
--configuration value The path to a migrations configuration file. [default: any of migrations.{php,xml,json,yml,yaml}]
--em value The name of the entity manager to use.
--conn value The name of the connection to use.

doctrine:migrations:up-to-date#

Tells you if your schema is up-to-date.

doctrine:migrations:up-to-date [-u|--fail-on-unregistered] [-l|--list-migrations] [--configuration CONFIGURATION] [--em EM] [--conn CONN]
Option Description
--fail-on-unregistered / -u flag Whether to fail when there are unregistered extra migrations found
--list-migrations / -l flag Show a list of missing or not migrated versions.
--configuration value The path to a migrations configuration file. [default: any of migrations.{php,xml,json,yml,yaml}]
--em value The name of the entity manager to use.
--conn value The name of the connection to use.

doctrine:migrations:version#

Manually add and delete migration versions from the version table.

doctrine:migrations:version [--add] [--delete] [--all] [--range-from RANGE-FROM] [--range-to RANGE-TO] [--configuration CONFIGURATION] [--em EM] [--conn CONN] [--] [<version>]
Option Description
version optional The version to add or delete.
--add flag Add the specified version.
--delete flag Delete the specified version.
--all flag Apply to all the versions.
--range-from value Apply from specified version.
--range-to value Apply to specified version.
--configuration value The path to a migrations configuration file. [default: any of migrations.{php,xml,json,yml,yaml}]
--em value The name of the entity manager to use.
--conn value The name of the connection to use.

doctrine:query:dql#

Executes arbitrary DQL directly from the command line

doctrine:query:dql [--em EM] [--hydrate HYDRATE] [--first-result FIRST-RESULT] [--max-result MAX-RESULT] [--depth DEPTH] [--show-sql] [--] <dql>
Option Description
dql required The DQL to execute.
--em value Name of the entity manager to operate on
--hydrate value Hydration mode of result set. Should be either: object, array, scalar or single-scalar.
--first-result value The first result in the result set.
--max-result value The maximum number of results in the result set.
--depth value Dumping depth of Entity graph.
--show-sql flag Dump generated SQL instead of executing query

doctrine:schema:create#

Processes the schema and either create it directly on EntityManager Storage Connection or generate the SQL output

doctrine:schema:create [--em EM] [--dump-sql]
Option Description
--em value Name of the entity manager to operate on
--dump-sql flag Instead of trying to apply generated SQLs into EntityManager Storage Connection, output them.

doctrine:schema:drop#

Drop the complete database schema of EntityManager Storage Connection or generate the corresponding SQL output

doctrine:schema:drop [--em EM] [--dump-sql] [-f|--force] [--full-database]
Option Description
--em value Name of the entity manager to operate on
--dump-sql flag Instead of trying to apply generated SQLs into EntityManager Storage Connection, output them.
--force / -f flag Don't ask for the deletion of the database, but force the operation to run.
--full-database flag Instead of using the Class Metadata to detect the database table schema, drop ALL assets that the database contains.

doctrine:schema:update#

Executes (or dumps) the SQL needed to update the database schema to match the current mapping metadata

doctrine:schema:update [--em EM] [--complete] [--dump-sql] [-f|--force]
Option Description
--em value Name of the entity manager to operate on
--complete flag This option is a no-op, is deprecated and will be removed in 4.0
--dump-sql flag Dumps the generated SQL statements to the screen (does not execute them).
--force / -f flag Causes the generated SQL statements to be physically executed against your database.

doctrine:schema:validate#

Validate the mapping files

doctrine:schema:validate [--em EM] [--skip-mapping] [--skip-sync] [--skip-property-types]
Option Description
--em value Name of the entity manager to operate on
--skip-mapping flag Skip the mapping validation check
--skip-sync flag Skip checking if the mapping is in sync with the database
--skip-property-types flag Skip checking if property types match the Doctrine types

(error)#

error:dump#

Dump error pages to plain HTML files that can be directly served by a web server

error:dump [-f|--force] [--] <path> [<status-codes>...]
Option Description
path required Path where to dump the error pages in
status-codes optional Status codes to dump error pages for, all of them by default
--force / -f flag Force directory removal before dumping new error pages

(flysystem)#

flysystem:pull#

Pull a file from a configured Flysystem storage to the local filesystem.

flysystem:pull [--force] [--] <storage> <source> [<destination>]
Option Description
storage required The configured Flysystem storage name.
source required The source path to transfer.
destination optional The destination path. Defaults to the source basename.
--force flag Overwrite the destination file if it already exists.

flysystem:push#

Push a local file to a configured Flysystem storage.

flysystem:push [--force] [--] <storage> <source> [<destination>]
Option Description
storage required The configured Flysystem storage name.
source required The source path to transfer.
destination optional The destination path. Defaults to the source basename.
--force flag Overwrite the destination file if it already exists.

(lexik)#

lexik:jwt:check-config#

Checks that the bundle is properly configured.

lexik:jwt:check-config

lexik:jwt:enable-encryption#

Enable Web-Token encryption support.

lexik:jwt:enable-encryption [-f|--force]
Option Description
--force / -f flag Force the modification of the configuration, even if already set.

lexik:jwt:generate-keypair#

Generate public/private keys for use in your application.

lexik:jwt:generate-keypair [--dry-run] [--skip-if-exists] [--overwrite]
Option Description
--dry-run flag Do not update key files.
--skip-if-exists flag Do not update key files if they already exist.
--overwrite flag Overwrite key files if they already exist.

lexik:jwt:generate-token#

Generates a JWT token for a given user.

lexik:jwt:generate-token [-t|--ttl TTL] [-c|--user-class USER-CLASS] [--] <username>
Option Description
username required Username of user to be retreived from user provider
--ttl / -t value Ttl in seconds to be added to current time. If not provided, the ttl configured in the bundle will be used. Use 0 to generate token without exp
--user-class / -c value Userclass is used to determine which user provider to use

lexik:jwt:migrate-config#

Migrate LexikJWTAuthenticationBundle configuration to the Web-Token one.

lexik:jwt:migrate-config

(lint)#

lint:container#

Ensure that arguments injected into services match type declarations

lint:container [--resolve-env-vars]
Option Description
--resolve-env-vars flag Resolve environment variables and fail if one is missing.

lint:translations#

Lint translations files syntax and outputs encountered errors

lint:translations [--locale LOCALE]
Option Description
--locale value Specify the locales to lint.

lint:twig#

Lint a Twig template and outputs encountered errors

lint:twig [--format FORMAT] [--show-deprecations] [--excludes EXCLUDES] [--] [<filename>...]
Option Description
filename optional A file, a directory or "-" for reading from STDIN
--format value The output format ("txt", "json", "github")
--show-deprecations flag Show deprecations as errors
--excludes value Excluded directories

lint:xliff#

Lint an XLIFF file and outputs encountered errors

lint:xliff [--format FORMAT] [--] [<filename>...]
Option Description
filename optional A file, a directory or "-" for reading from STDIN
--format value The output format ("txt", "json", "github")

lint:yaml#

Lint a YAML file and outputs encountered errors

lint:yaml [--format FORMAT] [--exclude EXCLUDE] [--parse-tags|--no-parse-tags] [--] [<filename>...]
Option Description
filename optional A file, a directory or "-" for reading from STDIN
--format value The output format ("txt", "json", "github")
--exclude value Path(s) to exclude
--parse-tags flag Parse custom tags
--no-parse-tags flag Negate the "--parse-tags" option

(mailer)#

mailer:test#

Test Mailer transports by sending an email

mailer:test [--from FROM] [--subject SUBJECT] [--body BODY] [--transport TRANSPORT] [--] <to>
Option Description
to required The recipient of the message
--from value The sender of the message
--subject value The subject of the message
--body value The body of the message
--transport value The transport to be used

(make)#

make:auth#

Create a Guard authenticator of different flavors

make:auth

make:command#

Create a new console command class

make:command [<name>]
Option Description
name optional Choose a command name (e.g. <fg=yellow>app:orange-puppy</>)

make:controller#

Create a new controller class

make:controller [--no-template] [--invokable] [--with-tests] [--] [<controller-class>]
Option Description
controller-class optional Choose a name for your controller class (e.g. <fg=yellow>BravePizzaController</>)
--no-template flag Use this option to disable template generation
--invokable flag Use this option to create an invokable controller
--with-tests flag Generate PHPUnit Tests

make:crud#

Create CRUD for Doctrine entity class

make:crud [--with-tests] [--] [<entity-class>]
Option Description
entity-class optional The class name of the entity to create CRUD (e.g. <fg=yellow>DeliciousChef</>)
--with-tests flag Generate PHPUnit Tests

make:docker:database#

Add a database container to your compose.yaml file

make:docker:database

make:entity#

Create or update a Doctrine entity class, and optionally an API Platform resource

make:entity [-a|--api-resource] [-b|--broadcast] [--regenerate] [--overwrite] [--with-uuid] [--with-ulid] [--] [<name>]
Option Description
name optional Class name of the entity to create or update (e.g. <fg=yellow>FiercePuppy</>)
--api-resource / -a flag Mark this class as an API Platform resource (expose a CRUD API for it)
--broadcast / -b flag Add the ability to broadcast entity updates using Symfony UX Turbo?
--regenerate flag Instead of adding new fields, simply generate the methods (e.g. getter/setter) for existing fields
--overwrite flag Overwrite any existing getter/setter methods
--with-uuid flag Use UUID for entity "id"
--with-ulid flag Use ULID for entity "id"

make:filter#

Creates an API Platform filter

make:filter [-p|--namespace-prefix NAMESPACE-PREFIX] [--] <type> <name>
Option Description
type required Choose a type for your filter (<fg=yellow>ORM or ODM</>)
name required Choose a class name for your filter (e.g. <fg=yellow>AwesomeFilter</>)
--namespace-prefix / -p value Specify the namespace prefix to use for the filter class

make:fixtures#

Create a new class to load Doctrine fixtures

make:fixtures [<fixtures-class>]
Option Description
fixtures-class optional The class name of the fixtures to create (e.g. <fg=yellow>AppFixtures</>)

make:form#

Create a new form class

make:form [<name> [<bound-class>]]
Option Description
name optional The name of the form class (e.g. <fg=yellow>FierceElephantType</>)
bound-class optional The name of Entity or fully qualified model class name that the new form will be bound to (empty for none)

make:listener#

Creates a new event subscriber class or a new event listener class

make:listener [<name> [<event>]]
make:subscriber
Option Description
name optional Choose a class name for your event listener or subscriber (e.g. <fg=yellow>ExceptionListener</> or <fg=yellow>ExceptionSubscriber</>)
event optional What event do you want to listen to?

make:message#

Create a new message and handler

make:message [<name>]
Option Description
name optional The name of the message class (e.g. <fg=yellow>SendEmailMessage</>)

make:messenger-middleware#

Create a new messenger middleware

make:messenger-middleware [<name>]
Option Description
name optional The name of the middleware class (e.g. <fg=yellow>CustomMiddleware</>)

make:migration#

Create a new migration based on database changes

make:migration [--formatted] [--nowdoc] [--configuration [CONFIGURATION]]
Option Description
--formatted flag Format the generated SQL
--nowdoc flag Use nowdoc format for generated SQL
--configuration value The path of doctrine configuration file

make:registration-form#

Create a new registration form system

make:registration-form [--with-tests]
Option Description
--with-tests flag Generate PHPUnit Tests

make:reset-password#

Create controller, entity, and repositories for use with symfonycasts/reset-password-bundle

make:reset-password [--with-uuid] [--with-ulid] [--with-tests]
Option Description
--with-uuid flag Use UUID for entity "id"
--with-ulid flag Use ULID for entity "id"
--with-tests flag Generate PHPUnit Tests

make:schedule#

Create a scheduler component

make:schedule

make:security:custom#

Create a custom security authenticator.

make:security:custom

make:security:form-login#

Generate the code needed for the form_login authenticator

make:security:form-login [--with-tests]
Option Description
--with-tests flag Generate PHPUnit Tests

make:serializer:encoder#

Create a new serializer encoder class

make:serializer:encoder [<name> [<format>]]
Option Description
name optional Choose a class name for your encoder (e.g. <fg=yellow>YamlEncoder</>)
format optional Pick your format name (e.g. <fg=yellow>yaml</>)

make:serializer:normalizer#

Create a new serializer normalizer class

make:serializer:normalizer [<name>]
Option Description
name optional Choose a class name for your normalizer (e.g. <fg=yellow>UserNormalizer</>)

make:state-processor#

Creates an API Platform state processor

make:state-processor [-p|--namespace-prefix NAMESPACE-PREFIX] [--] <name>
Option Description
name required Choose a class name for your state processor (e.g. <fg=yellow>AwesomeStateProcessor</>)
--namespace-prefix / -p value Specify the namespace prefix to use for the state processor class

make:state-provider#

Creates an API Platform state provider

make:state-provider [-p|--namespace-prefix NAMESPACE-PREFIX] [--] <name>
Option Description
name required Choose a class name for your state provider (e.g. <fg=yellow>AwesomeStateProvider</>)
--namespace-prefix / -p value Specify the namespace prefix to use for the state provider class

make:stimulus-controller#

Create a new Stimulus controller

make:stimulus-controller [-ts|--typescript] [--] <name>
Option Description
name required The name of the Stimulus controller (e.g. <fg=yellow>hello</>)
--typescript / -ts flag Create a TypeScript controller (default is JavaScript)

make:test#

Create a new test class

make:test [<type> [<name>]]
make:unit-test
make:functional-test
Option Description
type optional The type of test: <fg=yellow>TestCase</> (basic PHPUnit tests), <fg=yellow>KernelTestCase</> (basic tests that have access to Symfony services), <fg=yellow>WebTestCase</> (to run browser-like scenarios, but that don't execute JavaScript code), <fg=yellow>ApiTestCase</> (to run API-oriented scenarios), <fg=yellow>PantherTestCase</> (to run e2e scenarios, using a real-browser or HTTP client and a real web server)
name optional The name of the test class (e.g. <fg=yellow>BlogPostTest</>)

make:twig-component#

Create a Twig (or Live) component

make:twig-component [--live] [--] [<name>]
Option Description
name optional The name of your Twig component (ie <fg=yellow>Notification</>)
--live flag Whether to create a Live component (requires <fg=yellow>symfony/ux-live-component</>)

make:twig-extension#

Create a new Twig extension with its runtime class

make:twig-extension [<name>]
Option Description
name optional The name of the Twig extension class (e.g. <fg=yellow>AppExtension</>)

make:user#

Create a new security user class

make:user [--is-entity] [--identity-property-name IDENTITY-PROPERTY-NAME] [--with-password] [--with-uuid] [--with-ulid] [--] [<name>]
Option Description
name optional The name of the security user class (e.g. <fg=yellow>User</>)
--is-entity flag Do you want to store user data in the database (via Doctrine)?
--identity-property-name value Enter a property name that will be the unique "display" name for the user (e.g. email, username, uuid)
--with-password flag Will this app be responsible for checking the password? Choose No if the password is actually checked by some other system (e.g. a single sign-on server)
--with-uuid flag Use UUID for entity "id"
--with-ulid flag Use ULID for entity "id"

make:validator#

Create a new validator and constraint class

make:validator [<name>]
Option Description
name optional The name of the validator class (e.g. <fg=yellow>EnabledValidator</>)

make:voter#

Create a new security voter class

make:voter [<name>]
Option Description
name optional The name of the security voter class (e.g. <fg=yellow>BlogPostVoter</>)

make:webhook#

Create a new Webhook

make:webhook [<name>]
Option Description
name optional Name of the webhook to create (e.g. <fg=yellow>github, stripe, ...</>)

(messenger)#

messenger:consume#

Consume messages

messenger:consume [-l|--limit LIMIT] [-f|--failure-limit FAILURE-LIMIT] [-m|--memory-limit MEMORY-LIMIT] [-t|--time-limit TIME-LIMIT] [--sleep SLEEP] [-b|--bus BUS] [--queues QUEUES] [--no-reset [NO-RESET]] [--all] [--exclude-receivers EXCLUDE-RECEIVERS] [--keepalive [KEEPALIVE]] [--fetch-size FETCH-SIZE] [--] [<receivers>...]
Option Description
receivers optional Names or regular expression patterns of the receivers/transports to consume in order of priority
--limit / -l value Limit the number of received messages
--failure-limit / -f value The number of failed messages the worker can consume
--memory-limit / -m value The memory limit the worker can consume
--time-limit / -t value The time limit in seconds the worker can handle new messages
--sleep value Seconds to sleep before asking for new messages after no messages were found
--bus / -b value Name of the bus to which received messages should be dispatched (if not passed, bus is determined automatically)
--queues value Limit receivers to only consume from the specified queues
--no-reset value Do not reset container services after each message, or pass a number to reset every N messages
--all flag Consume messages from all receivers
--exclude-receivers value Exclude specific receivers/transports from consumption (can only be used with --all)
--keepalive value Whether to use the transport's keepalive mechanism if implemented
--fetch-size value The number of messages to fetch per call to the transport

messenger:setup-transports#

Prepare the required infrastructure for the transport

messenger:setup-transports [<transport>]
Option Description
transport optional Name of the transport to setup

messenger:stats#

Show the message count for one or more transports

messenger:stats [--format FORMAT] [--] [<transport_names>...]
Option Description
transport_names optional List of transports' names
--format value The output format ("txt", "json")

(router)#

router:match#

Help debug routes by simulating a path info match

router:match [--method METHOD] [--scheme SCHEME] [--host HOST] [--] <path_info>
Option Description
path_info required A path info
--method value Set the HTTP method
--scheme value Set the URI scheme (usually http or https)
--host value Set the URI host

(secrets)#

secrets:decrypt-to-local#

Decrypt all secrets and stores them in the local vault

secrets:decrypt-to-local [-f|--force]
Option Description
--force / -f flag Force overriding of secrets that already exist in the local vault

secrets:encrypt-from-local#

Encrypt all local secrets to the vault

secrets:encrypt-from-local

secrets:generate-keys#

Generate new encryption keys

secrets:generate-keys [-l|--local] [-r|--rotate]
Option Description
--local / -l flag Update the local vault.
--rotate / -r flag Re-encrypt existing secrets with the newly generated keys.

secrets:list#

List all secrets

secrets:list [-r|--reveal]
Option Description
--reveal / -r flag Display decrypted values alongside names

secrets:remove#

Remove a secret from the vault

secrets:remove [-l|--local] [--] <name>
Option Description
name required The name of the secret
--local / -l flag Update the local vault.

secrets:reveal#

Reveal the value of a secret

secrets:reveal <name>
Option Description
name required The name of the secret to reveal

secrets:set#

Set a secret in the vault

secrets:set [-l|--local] [-r|--random [RANDOM]] [--] <name> [<file>]
Option Description
name required The name of the secret
file optional A file where to read the secret from or "-" for reading from STDIN
--local / -l flag Update the local vault.
--random / -r value Generate a random value.

(security)#

security:hash-password#

Hash a user password

security:hash-password [--empty-salt] [--] [<password> [<user-class>]]
Option Description
password optional The plain password to hash.
user-class optional The User entity class path associated with the hasher used to hash the password.
--empty-salt flag Do not generate a salt or let the hasher generate one.

(translation)#

translation:extract#

Extract missing translations keys from code to translation files

translation:extract [--prefix PREFIX] [--no-fill] [--format FORMAT] [--dump-messages] [--force] [--clean] [--domain DOMAIN] [--sort SORT] [--as-tree AS-TREE] [--] <locale> [<bundle>]
Option Description
locale required The locale
bundle optional The bundle name or directory where to load the messages
--prefix value Override the default prefix
--no-fill flag Extract translation keys without filling in values
--format value Override the default output format
--dump-messages flag Should the messages be dumped in the console
--force flag Should the extract be done
--clean flag Should clean not found messages
--domain value Specify the domain to extract
--sort value Return list of messages sorted alphabetically
--as-tree value Dump the messages as a tree-like structure: The given value defines the level where to switch to inline YAML

translation:pull#

Pull translations from a given provider.

translation:pull [--force] [--intl-icu] [--domains DOMAINS] [--locales LOCALES] [--format FORMAT] [--as-tree AS-TREE] [--] <provider>
Option Description
provider required The provider to pull translations from.
--force flag Override existing translations with provider ones (it will delete not synchronized messages).
--intl-icu flag Associated to --force option, it will write messages in "%domain%+intl-icu.%locale%.xlf" files.
--domains value Specify the domains to pull.
--locales value Specify the locales to pull.
--format value Override the default output format.
--as-tree value Write messages as a tree-like structure. Needs --format=yaml. The given value defines the level where to switch to inline YAML

translation:push#

Push translations to a given provider.

translation:push [--force] [--delete-missing] [--domains DOMAINS] [--locales LOCALES] [--] <provider>
Option Description
provider required The provider to push translations to.
--force flag Override existing translations with local ones (it will delete not synchronized messages).
--delete-missing flag Delete translations available on provider but not locally.
--domains value Specify the domains to push.
--locales value Specify the locales to push.