source

Sources are reusable import connections stored in your config file. Once saved, reference one with realm import --source-ref <name> instead of repeating its URL and credentials. See Import for how they’re consumed.

ferris-ctl source <subcommand>

source list

List configured sources.

ferris-ctl source list

Table columns: NAME, KIND, URL, SECRET (whether a secret/token is stored).

source add

Add (or overwrite) a source.

ferris-ctl source add <name> --kind <kind> --url <url> [auth flags]
ArgumentRequiredDescription
<name>yesSource name
--kindyeskeycloak or zitadel
--urlyesBase URL of the source instance
--realmnoSource realm name (Keycloak)
--client-idnoClient id for source auth (Keycloak)
--client-secretnoClient secret for source auth (Keycloak)
--tokennoBearer token / PAT (Zitadel, or a ready Keycloak token)
--org-idnoOrganization id (Zitadel); omit to import all orgs
ferris-ctl source add keycloak-prod \
  --kind keycloak \
  --url https://keycloak.example.com \
  --realm acme \
  --client-id admin-cli \
  --client-secret "$KC_SECRET"
ferris-ctl realm import --source-ref keycloak-prod --target-realm acme

Secrets are stored in plain text

Source secrets and tokens are written to config.toml without redaction. Protect the file with appropriate filesystem permissions, and prefer short-lived tokens where possible.

source remove

Remove a stored source.

ferris-ctl source remove <name>
ArgumentRequiredDescription
<name>yesSource name