Skip to content

Command Reference ​

Every pfy command group with a one-line summary, the global flags, and a few common patterns. Each group links to its own page with flags and examples.

Command Structure ​

bash
pfy [global-flags] <command> [subcommand] [flags]

Global Flags ​

Available on all commands:

FlagShortDescription
--managerManager server URL
--tokenPersonal Access Token
--insecure-skip-tls-verifySkip TLS verification (not for production)
--timeoutHTTP request timeout for Manager API calls (e.g. 30s, 1m; default: 30s)
--output-oOutput format for list/get commands: text (default), json, or yaml
--ciMark a CI run: destructive commands require --yes, login never opens a browser
--verbose-vPrint progress lines and record IDs
--quiet-qSuppress headings, progress, and confirmations (data rows are still printed)
--versionPrint the CLI binary's version and exit (only in builds with a version stamped in)

Output formats ​

The root --output/-o flag makes list/get commands machine-readable. In json/yaml mode, diagnostics ("Connecting to manager...") go to stderr, so stdout is a clean data stream:

bash
pfy -o json project list | jq -r '.[].slug'
pfy -o yaml tenant list --project my-saas
pfy -o json whoami

Notes:

  • Most mutating commands (creates, deletes) print human-readable text only.
  • Three subcommands define their own local --output/-o with a different value set: deployment get -o yaml|json, nomad adopt -o json|yaml, and dev seed -o text|json. ci update --output <dir> is an output directory. File-output flags elsewhere are --out or --out-dir and have no short form.
  • --quiet still prints the data rows of list/get commands; it only drops the surrounding chatter.

Core Commands ​

Setup & Configuration ​

CommandDescription
loginAuthenticate with ProductifyFW manager (browser SSO by default)
whoamiCheck that the configured manager URL and token work
logoutRemove the stored token from ~/.pfy/config.yaml
initInitialize new project configuration
syncSync project configuration from manager
versionManage project version (show/set/bump)

Resource Management ​

CommandDescription
projectManage projects - the top-level organization units
tenantManage tenants within projects for multi-tenancy
applicationManage project-level applications and tenant enablements
serviceManage an application's services (its stack)
dataManage an application's platform-provisioned data stores
envManage environments and local project.yaml aliases
languagepackManage internationalization language packs
piletScaffold and upload pilet packages for microfrontends

CI/CD & Deployment ​

CommandDescription
ciGenerate and update CI/CD pipeline templates
nomadRender, adopt, and deploy Nomad jobs from the deployment spec
deploymentRead and write a deployment's spec (get/set/snapshot/apply)
deploy diffThree-way drift detection: spec vs. repo artifact vs. cluster
platformRender and deploy the platform-core stack from install.yaml
proxyInspect and drive the Manager's proxy-config sync loop

Local Development ​

CommandDescription
devRun and manage the local platform (up/down/status/seed/proxy)

Command Categories ​

By Function ​

Setup & Configuration

  • login / whoami / logout - Authentication
  • init - Initialize project configuration
  • sync - Sync from manager
  • version - Version management

Project Hierarchy

  • project - Top-level organization
  • tenant - Multi-tenant isolation
  • application - Project-level applications, enabled per tenant
  • service - The services inside an application's stack
  • data - Platform-managed postgres/redis stores
  • env - Environments and local aliases

Customization

  • languagepack - Internationalization
  • pilet - Microfrontend packages

CI/CD & Deployment

  • ci - Pipeline template generation
  • nomad - Render/adopt/deploy application jobs
  • deployment - Deployment-spec scripting
  • deploy diff - Drift detection
  • platform - Platform-core stack
  • proxy - Edge proxy config sync: status, drift, on-demand push

Local Development

  • dev - Local platform lifecycle

By Development Phase ​

Getting Started

bash
# 1. Authenticate (browser SSO)
pfy login --server https://manager.example.com

# 2. Initialize project
pfy init --name my-app --language go

# 3. Generate CI/CD
pfy ci update

Development

bash
# Bump version
pfy version bump --part patch

# Push the new version to the Manager
pfy application update-version --app <slug> --project <project> --version $(pfy version show)

Release & Deploy

bash
# Bump version, regenerate CI templates, deploy to Nomad from the deployment spec
pfy version bump --part minor
pfy ci update
pfy nomad deploy --env prod --use-project-version --yes

Usage Patterns ​

Scripting Mode ​

Use -o json for parseable output. --quiet suppresses normal output; it silences a command rather than making it parseable:

bash
#!/bin/bash
pfy -o json project list | jq -e '.[] | select(.slug == "my-project")'

CI/CD Mode ​

Use --ci in pipelines. Destructive commands (delete, data restore, un-dedicating a tenant, ...) then refuse to run without --yes instead of prompting, and login never tries to open a browser:

bash
pfy --ci nomad deploy --env prod --use-project-version --yes

Getting Help ​

General Help ​

bash
pfy --help

Command Help ​

bash
pfy project --help
pfy project create --help

Common Patterns ​

Chaining Commands ​

bash
# Get project ID and create tenant
PROJECT_ID=$(pfy -o json project get --slug my-project | jq -r .id)
pfy tenant create --project-id $PROJECT_ID --slug tenant1 --name "Tenant 1"

Error Handling ​

bash
if pfy project create --slug test --name "Test"; then
    echo "Project created successfully"
else
    echo "Failed to create project"
    exit 1
fi

Verbose Debugging ​

bash
pfy --verbose project create --slug debug --name "Debug"

Next Steps ​

Explore detailed documentation for each command:

Setup Commands ​

  • login - Authentication (incl. whoami/logout)
  • init - Initialize project configuration
  • sync - Sync from manager
  • version - Version management

Resource Management ​

CI/CD & Deployment ​

Local Development ​

  • dev - Local platform lifecycle

Guides ​

For additional information, use pfy --help or pfy <command> --help to see all available options.