TenantPocCommand
extends Command
in package
Automates the two-tenant staging proof-of-concept harness.
Table of Contents
Methods
- defaultName() : string
- execute() : int
- buildOptionParser() : ConsoleOptionParser
- assertDistinctTenants() : void
- assertExecutionAllowed() : void
- Enforce explicit safety gates before touching staging resources.
- assertValidHost() : void
- Validate DNS host syntax.
- assertValidIdentifier() : void
- Validate a PostgreSQL identifier.
- assertValidSlug() : void
- Validate tenant slug syntax.
- envFlag() : bool
- Read a boolean environment flag.
- isProductionEnvironment() : bool
- Determine whether the command is running in production.
- platformConnection() : Connection
- Get the platform metadata connection.
- provisionTenant() : void
- smokeTenant() : void
- Verify a tenant database is reachable and has the expected table.
- tenantDefinition() : array{slug: string, host: string, displayName: string, dbName: string, dbRole: string, blobContainer: string}
- tenantDefinitions() : array<int, array{slug: string, host: string, displayName: string, dbName: string, dbRole: string, blobContainer: string}>
Methods
defaultName()
public
static defaultName() : string
Tags
Return values
stringexecute()
public
execute(Arguments $args, ConsoleIo $io) : int
Parameters
- $args : Arguments
- $io : ConsoleIo
Tags
Return values
intbuildOptionParser()
protected
buildOptionParser(ConsoleOptionParser $parser) : ConsoleOptionParser
Parameters
- $parser : ConsoleOptionParser
Tags
Return values
ConsoleOptionParserassertDistinctTenants()
private
assertDistinctTenants(array<int, array{slug: string, host: string}> $tenants) : void
Parameters
- $tenants : array<int, array{slug: string, host: string}>
-
Tenant definitions
assertExecutionAllowed()
Enforce explicit safety gates before touching staging resources.
private
assertExecutionAllowed(Arguments $args) : void
Parameters
- $args : Arguments
-
Command arguments
assertValidHost()
Validate DNS host syntax.
private
assertValidHost(string $host) : void
Parameters
- $host : string
-
Tenant host
assertValidIdentifier()
Validate a PostgreSQL identifier.
private
assertValidIdentifier(string $identifier, string $label) : void
Parameters
- $identifier : string
-
Identifier value
- $label : string
-
Human-readable label
assertValidSlug()
Validate tenant slug syntax.
private
assertValidSlug(string $slug) : void
Parameters
- $slug : string
-
Tenant slug
envFlag()
Read a boolean environment flag.
private
envFlag(string $name) : bool
Parameters
- $name : string
-
Environment variable name
Return values
boolisProductionEnvironment()
Determine whether the command is running in production.
private
isProductionEnvironment() : bool
Return values
boolplatformConnection()
Get the platform metadata connection.
private
platformConnection() : Connection
Return values
ConnectionprovisionTenant()
private
provisionTenant(array{slug: string, host: string, displayName: string, dbName: string, dbRole: string, blobContainer: string} $tenant, Arguments $args, ConsoleIo $io) : void
Parameters
- $tenant : array{slug: string, host: string, displayName: string, dbName: string, dbRole: string, blobContainer: string}
-
Tenant definition
- $args : Arguments
- $io : ConsoleIo
smokeTenant()
Verify a tenant database is reachable and has the expected table.
private
smokeTenant(TenantConnectionManager $manager, TenantMetadata $tenant, string $table, ConsoleIo $io) : void
Parameters
- $manager : TenantConnectionManager
-
Tenant connection manager
- $tenant : TenantMetadata
-
Tenant metadata
- $table : string
-
Table to query
- $io : ConsoleIo
-
Console IO
tenantDefinition()
private
tenantDefinition(string $slug, string $host, string $displayName, string $dbPrefix) : array{slug: string, host: string, displayName: string, dbName: string, dbRole: string, blobContainer: string}
Parameters
- $slug : string
- $host : string
- $displayName : string
- $dbPrefix : string
Return values
array{slug: string, host: string, displayName: string, dbName: string, dbRole: string, blobContainer: string}tenantDefinitions()
private
tenantDefinitions(Arguments $args) : array<int, array{slug: string, host: string, displayName: string, dbName: string, dbRole: string, blobContainer: string}>
Parameters
- $args : Arguments