Skip to content

Managing Applications

Applications are the core entities in Manager, representing individual deployable services or apps within your SaaS platform.

What is an Application?

An application represents a deployable service with:

  • Unique configuration - Application-specific settings
  • One or more endpoints - Access points for the application
  • Trigger integration - Automation and scheduled tasks
  • User access - Role-based permissions

Applications are project-level since Wave 3

An application is defined once at the project level and enabled per tenant via Tenant2Application; it no longer belongs to a single tenant. One deployed proxy and backend per (application, environment) serve every enabled tenant. See Multi-tenancy and the Migration Guide.

Creating an Application

Step 1: Navigate

Applications live at the project level: open a project, then open its Applications page.

Step 2: Click Create

Click the Create Application button.

Step 3: Fill Details

  • Name (required) - Application display name
  • Slug (required) - Short URL-friendly identifier (auto-filled from the name, max 10 characters); unique per project
  • Version (optional) - Application version (defaults to 0.1.0)
  • Description - Brief description

Step 4: Create

Click Create to save. The application is created at the project level. To give a customer organization access, enable it for that tenant (see Managing Tenants).

Application List

The applications table for a project shows:

  • # - Application slug
  • Name - Application display name
  • Version - Application version
  • Created at / Created by - Creation metadata
  • Updated at / Updated by - Last modification metadata

Columns are sortable, and the list can be filtered by name.

Application Details

Click an application to open its detail page. From there, dedicated sub-pages are available:

Details

  • Application metadata (name, slug, version, description)
  • Creation and update timestamps, creator and editor
  • User access management (add/remove users, assign readonly/normal roles)

Endpoints

All ESB endpoints for this application:

  • Endpoint names and target URLs
  • Enabled/disabled state
  • Per-endpoint machine user access

See Endpoints for details.

Settings

Application-specific configuration:

  • Backend Settings - Modules, key-value pairs
  • Frontend Settings - Themes, locales, modules
  • Configuration Layers - View inheritance

See Settings Editor for a comprehensive guide.

Triggers

Automation configured for this application:

  • Cron schedules
  • Trigger names and descriptions
  • Enable/disable toggles

See Triggers & Automation for details.

Editing an Application

  1. Navigate to application details
  2. Click Edit
  3. Update fields:
    • Name
    • Description
    • Version
  4. Click Save Changes

Enabling for Tenants

An application is offered to a customer organization by enabling it for that tenant, not by cloning it:

  • UI: the Application → Tenants tab (or Tenant → Applications) toggles enablement and edits per-(tenant, application) config.
  • CLI: pfy application enable --tenant <slug> / disable / list-tenants.

The cross-tenant application promote / copyApplication flow is removed in Wave 3 — with one project-level application there is nothing to promote between tenants. To move configuration between environments (dev → qas → run), copy config between environments rather than cloning the application. See the Migration Guide.

Deleting an Application

Permanent Deletion

Deleting an application removes all associated data including endpoints, triggers, and settings. This cannot be undone.

Steps

  1. Navigate to application details
  2. Click Delete
  3. Review what will be deleted:
    • All endpoints
    • All triggers
    • All settings
    • User associations
  4. Confirm the deletion

Application Domains

Applications are exposed on domains configured at the Proxy: each domain in the proxy's Caddyfile is mapped to an application (and its tenant). DNS for the domain must point at the proxy:

app.example.com

See the proxy documentation for domain setup.

Best Practices

Naming

  • Use descriptive names: "Customer Dashboard", "Admin Portal"
  • Include version if needed: "API v2", "Dashboard v3"
  • Keep identifiers URL-friendly: lowercase, hyphens

Organization

  • Group related services in same project
  • Use consistent naming across environments
  • Document purpose in description field

Configuration

  • Override project settings only when necessary
  • Keep application-specific customizations minimal
  • Document custom configurations

Security

  • Regularly review user access
  • Use Personal Access Tokens for API access
  • Monitor audit logs for suspicious activity

Common Use Cases

Multi-Environment Setup

Environments are modeled as tenants, each containing its own copy of the application:

Project: MyProduct
  ├─ Tenant: Development
  │   └─ Application: MyProduct App
  ├─ Tenant: Staging
  │   └─ Application: MyProduct App
  └─ Tenant: Production
      └─ Application: MyProduct App

Microservices Architecture

Each service as an application:

Project: E-commerce Platform
  ├─ Application: Auth Service
  ├─ Application: Product Catalog
  ├─ Application: Shopping Cart
  ├─ Application: Payment Service
  └─ Application: Order Management

White-Label SaaS

Different branding per customer:

Project: Enterprise Clients
  ├─ Application: Client A Portal (blue theme)
  ├─ Application: Client B Portal (green theme)
  └─ Application: Client C Portal (red theme)

Troubleshooting

Cannot Create Application

Issue: "Project not found" error

Solution: Ensure you have access to the selected project and tenant

Endpoints Not Accessible

Check:

  1. Are the endpoints enabled and configured correctly?
  2. Does the calling machine user have access to the endpoint?
  3. Is DNS pointing to the proxy?
  4. Check application logs

Settings Not Taking Effect

Reason: Configuration might be cached

Solution:

  1. View effective configuration
  2. Verify settings are saved
  3. Restart application if needed
  4. Check configuration inheritance

Triggers Not Executing

Check:

  1. Are the triggers enabled?
  2. Is a backend registered and healthy for the application?
  3. Check backend logs for errors

See Also