sfp - flxbl package manager
#flxblsfopsSlackGitHub
  • Overview
  • Getting Started
    • Pre-Requisites
    • Install sfp
    • Configure Your Project
    • Build & Install an Artifact
    • Congratulations!
    • Docker Images
      • sfp-pro
  • CONCEPTS
    • Overview
    • SF CLI vs. SFP
    • Domains
    • Packages
    • Supported package types
      • Unlocked Packages
      • Org-Dependent Unlocked Packages
      • Source Packages
      • Diff Package
      • Data Packages
    • Artifacts
    • Package vs Artifacts
    • Identifying types of a package
    • Dependency management
    • Transitive Dependency Resolution
    • Destructive Changes
  • configuring a project
    • Project structure
    • Setup Salesforce Org
    • Creating a package
    • Defining a domain
    • Release Config
  • BUILDING ARTIFACTS
    • Overview
    • Determining whether an artifact need to be built
    • Building a domain
    • Building an artifact for package individually
    • Limiting artifacts to be built
    • Controlling aspects of the build command
      • Ignoring packages from being built
      • Building a collection of packages together
      • Selective ignoring of components from being built
      • Use of multiple config file in build command
    • Configuring installation behaviour of a package
      • Always deploy a package
      • Skip Install on Certain Orgs
      • Optimized Installation
      • Pre/Post Deployment Script
      • Reconciling Profiles
      • PermissionSet Assignment
      • Updating Picklist
      • Entitlement Deployment Helper
      • Field History & Feed Tracking
      • Aliasfy Packages
        • Aliasfy Packages - Merge Mode
      • State management for Flows
  • Installing an artifact
    • Overview
    • Controlling Aspects of Installation
    • Applying attributes of an artifact
    • BuiltIn Deployment Helpers
      • PermissionSet Group Awaiter
  • publishing and fetching artifacts
    • Publish Artifact
    • Fetching Artifacts
  • Releasing artifacts
    • Overview
    • Release Definitions
    • Generating a release definition
    • Generating a changelog
  • Validating a change
    • Overview
    • Different types of validation
    • Limiting Validation by Domain
    • Controlling validation attributes of a package
      • Skip Testing
      • Skip Coverage Validation
      • Test Synchronously
  • Analysing a Project
    • Overview
    • Duplicate Check
  • Environment Management
    • Pools
      • Scratch Org Pools
        • Defining a pool
        • Setting up your Salesforce Org for Scratch Org Pools
        • Pool Operations
          • Preparing pools
            • Handling dependencies
          • List Scratch Orgs in a pool
          • Fetch a scratch org
          • Delete Pools
      • Sandbox Pools
        • Sandbox Pool Initialization
        • Fetch a Sandbox from Pool
        • Monitor Sandbox Pools
    • Review Environments
      • Commands
        • Fetch a Review Environment
        • Check Review Environment Status
        • Extend a Review Environment
        • Transition Review Environment Status
        • Unassign a Review Environment
      • Considerations
    • Sandbox
      • Create Sandbox
      • Delete Sandbox
      • List Sandbox
      • Login to Sandbox
      • Update Sandbox
  • Development
    • Development Environment
    • Pull Changes from your org
    • Push Changes to your org
    • Dependency Management
      • Expand Dependencies
      • Shrink Dependencies
      • Explain Dependencies
  • Running sfp as a server
    • Introduction
    • sfp-pro-server: Architecture Overview (Alpha)
      • Task Processing System
      • Authentication & Security Architecture
      • Authentication System: Deep Dive
      • Database Architecture
      • Network Architecture and Integration System
      • Integration Architecture: Building Extensions
    • Installing SFP Server
    • Initializing SFP server
  • Metrics
    • Available Metrics
    • Custom Metrics
    • Configuring Collectors
      • Datadog
      • Splunk
      • New Relic
      • StatsD
  • Helpers
    • Managing Shared Resources
  • Command Guide
    • Core
      • Build
      • Quickbuild
      • Publish
      • Install
      • Release
    • Advanced
      • Validate
      • Artifacts
      • Changelog
      • Impact
      • Pool
      • Metrics
      • Repo
    • Utilities
      • Apex Tests
      • Flow
      • Dependency
      • Profile
  • FAQs
    • Common Errors
      • Org Shapes
      • Troubleshooting Unlocked Packages Build Failure Due to Code Coverage
    • Common Questions
      • Email Templates Deployment: Classic vs Lightning
      • Dealing with Long Build Times in Salesforce
      • Standard ValueSets and unlocked packages
      • Common Issues encountered with aliasfied packages
      • API Version
      • Understanding alwaysDeploy and skipIfAlreadyInstalled in Deployment Pipelines
    • sfp versioning and upgrade Process
  • References
  • Legal
    • Terms of Service for sfp
    • Terms of Service for 'sfp-pro' Software
  • LLMs.txt
Powered by GitBook
On this page
  • Usage
  • Flags
  • Secret Provider Options
  • Examples
  • Behavior
  • Error Handling
  • Post-Initialization

Was this helpful?

Edit on GitHub
Export as PDF
  1. Running sfp as a server

Initializing SFP server

sfp-pro
sfp (community)

Availability

✅

❌

From

December 24

The sfp server init command initializes a new SFP server tenant with all necessary configurations, services, and secret management. This command sets up the complete infrastructure required for running an SFP server instance.

Usage

sfp server init -t <tenant-name> [flags]

Flags

Flag
Required
Description

-t, --tenant

Yes

Name of the tenant. Must contain only lowercase letters, numbers, and hyphens

-m, --mode

No

Environment mode: dev or prod (default: dev)

-f, --force

No

Force initialization even if tenant already exists

-i, --interactive

No

Enable/disable interactive mode for configuration (default: true)

-d, --domain

No

Custom domain for the server. Required in prod mode

--worker-counts

No

Comma-separated worker counts for critical,normal,batch (default: "1,1,1")

--secrets-provider

No

Secret management provider to use (default: "infisical")

Secret Provider Options

The command supports multiple secret management providers, each with its own configuration flags:

Infisical

  • --infisical-token: Authentication token for Infisical

Azure Key Vault

  • --keyvault-url: URL of the Azure Key Vault

  • --keyvault-tenant-id: Azure tenant ID

  • --keyvault-client-id: Azure client ID

  • --keyvault-client-secret: Azure client secret

AWS Secrets Manager

  • --aws-region: AWS region

  • --aws-access-key-id: AWS access key ID

  • --aws-secret-access-key: AWS secret access key

HashiCorp Vault

  • --vault-url: URL of the HashiCorp Vault

  • --vault-token: Authentication token for Vault

Examples

  1. Initialize a development server:

sfp server init --tenant my-app
  1. Initialize a production server with Infisical:

sfp server init --tenant my-app --mode prod --secrets-provider infisical --infisical-token mytoken
  1. Initialize with Azure Key Vault:

sfp server init --tenant my-app --mode prod \
  --secrets-provider azure-keyvault \
  --keyvault-url https://myvault.vault.azure.net
  1. Initialize with custom worker configuration:

sfp server init --tenant my-app --worker-counts 2,3,1

Behavior

  1. Directory Structure: Creates a structured directory layout under ./sfp-server/tenants/<tenant-name> containing:

    • Configuration files

    • Secret management setup

    • Docker compose files

    • Service configurations

  2. Environment Setup:

    • Development Mode: Sets up local development environment with default configurations

    • Production Mode: Configures production-ready setup with specified domain and secret management

  3. Services Configuration:

    • Configures Docker services

    • Sets up database schema and migrations

    • Initializes worker processes

    • Configures reverse proxy (Caddy)

  4. Secret Management:

    • Integrates with specified secrets provider

    • Sets up secure storage and access patterns

    • Configures necessary authentication

Error Handling

The command will fail with appropriate error messages in the following scenarios:

  • Invalid tenant name format

  • Missing required provider-specific configuration

  • Existing tenant without force flag

  • Invalid worker count format

  • Failed service initialization

Post-Initialization

After successful initialization, the command outputs:

  • Tenant URL and access details

  • Available management commands

  • Service status information

You can manage the initialized server using other sfp server commands:

sfp server logs <tenant>     # View server logs
sfp server status <tenant>   # Check server status
sfp server stop <tenant>     # Stop server
sfp server update <tenant>   # Update server configuration

Note: For production deployments, ensure you have configured your domain DNS settings and have necessary SSL certificates before initialization.

Warning: The --force flag will overwrite existing configurations. Use with caution in production environments.

PreviousInstalling SFP ServerNextAvailable Metrics

Last updated 5 months ago

Was this helpful?