SetupConfig class

Configuration for project setup

Constructors

SetupConfig({required String appName, required String orgDomain, required String baseClassName, required TemplateType template, required String outputDir, bool createModels = false, bool createServer = false, bool useFirebase = false, String? firebaseProjectId, bool setupCloudRun = false, String? serviceAccountKeyPath, List<String> platforms = const ['android', 'ios', 'web', 'linux', 'macos', 'windows'], bool? deployHostingRelease, bool? deployHostingBeta, String firestoreRegion = 'nam5', bool initializeFirestore = true, bool initializeStorage = true, bool enableEmailAuth = true, bool enableGoogleAuth = true, bool? requireBlaze, bool? setupArtifactCleanup, int artifactKeepRecent = 5, int artifactDeleteOlderDays = 30, int cloudRunKeepRevisions = 3, JasprRenderMode? jasprRenderMode, String? jasprServerServiceName, String embeddedFlutterMount = '/app', List<String>? hybridDynamicPrefixes})
SetupConfig.defaults()
Create config with defaults
factory

Properties

appName String
App name in snake_case (e.g., my_app)
final
artifactDeleteOlderDays int
Age (days) after which non-keep-listed Artifact Registry image versions are deleted. Defaults to 30.
final
artifactKeepRecent int
Number of most-recent Artifact Registry image versions the cleanup policy should keep. Defaults to 5.
final
baseClassName String
Base class name in PascalCase (e.g., MyApp)
final
cloudRunKeepRevisions int
Number of most-recent Cloud Run revisions to keep. Older revisions that are not currently serving traffic are pruned. Defaults to 3.
final
createModels bool
Whether to create models package
final
createServer bool
Whether to create server app
final
deployHostingBeta bool
Whether the orchestrator should create and deploy the <project>-beta hosting site. Only meaningful when web hosting is supported.
final
deployHostingRelease bool
Whether the orchestrator should deploy the release hosting site. Only meaningful when TemplateTypeExtension.isFlutterApp with web platform OR TemplateTypeExtension.isJasprApp is true.
final
effectiveJasprServerServiceName String
Effective Cloud Run service name for the Jaspr server binary. Falls back to <appName>-web when jasprServerServiceName is null. Dashes-not-underscores because Cloud Run rejects underscores in service names.
no setter
embeddedFlutterClassName String
Class name for the embedded Flutter web app.
no setter
embeddedFlutterMount String
Mount path for the embedded Flutter web app inside the Jaspr host site. Only meaningful when template is TemplateType.arcaneJasprFlutterEmbed. Defaults to /app.
final
embeddedFlutterPackageName String
Package name for the embedded Flutter web app (only meaningful when template is TemplateType.arcaneJasprFlutterEmbed).
no setter
enableEmailAuth bool
Whether the orchestrator should enable / hand off Email + Password auth.
final
enableGoogleAuth bool
Whether the orchestrator should enable / hand off Google sign-in. Always falls back to a console hand-off because the OAuth client cannot be fully scripted.
final
firebaseProjectId String?
Firebase project ID (required if useFirebase is true)
final
firestoreRegion String
Region used to bootstrap the default Firestore database when missing. Common values: nam5 (multi-region US), eur3 (multi-region EU), us-central1, europe-west1. Defaults to nam5.
final
hasEmbeddedFlutter bool
True when this configuration produces a Flutter web app that ships inside the Jaspr build output (the embed mode of the arcaneJasprFlutterEmbed template).
no setter
hashCode int
The hash code for this object.
no setterinherited
hasJasprServer bool
True when this configuration produces a Cloud Run service for the Jaspr binary (SSR / hybrid). Independent of the arcane_server template; both can be true at once.
no setter
hybridDynamicPrefixes List<String>
URL prefixes that route to the Jaspr Cloud Run service instead of to static hosting. Only meaningful in hybrid mode. Defaults to ['/api', '/auth'] so the user has a sensible non-empty starting point; the firebase.json generator emits a run:<service> rewrite for every prefix listed here.
final
initializeFirestore bool
Whether the orchestrator should ensure the default Firestore database exists (create on NOT_FOUND).
final
initializeStorage bool
Whether the orchestrator should ensure the default Storage bucket exists.
final
jasprRenderMode JasprRenderMode
How the Jaspr site renders. Only meaningful when TemplateTypeExtension.isJasprApp is true.
final
jasprServerServiceName String?
Cloud Run service name for the Jaspr server binary (SSR / hybrid). Defaults to <appName>-web so it never collides with the arcane_server service (<appName>-server).
final
modelsPackageName String
Get the app name for the models package
no setter
orgDomain String
Organization domain in reverse notation (e.g., com.example)
final
outputDir String
Output directory for created projects
final
platforms List<String>
Selected platforms for Flutter app
final
requireBlaze bool
Whether the orchestrator should hard-require a Blaze (pay-as-you-go) plan before attempting Cloud Run / cleanup setup. Defaults to true when createServer or setupCloudRun is true.
final
runnerClassName String
Get the runner class name (PascalCase + Runner)
no setter
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
serverClassName String
Get the server class name (PascalCase + Server)
no setter
serverPackageName String
Get the app name for the server
no setter
serviceAccountKeyPath String?
Path to service account key file
final
setupArtifactCleanup bool
Whether the orchestrator should install Artifact Registry cleanup policies for the server image. Defaults to true when setupCloudRun is true.
final
setupCloudRun bool
Whether to setup Cloud Run for server
final
supportsWebHosting bool
Whether this configuration produces a deployable web build for either Flutter web or any Jaspr template (static or client). Used by the orchestrator to gate hosting / build / deploy steps.
no setter
template TemplateType
Selected template
final
useFirebase bool
Whether to enable Firebase
final
webClassName String
Get the web class name (PascalCase + Web)
no setter
webPackageName String
Get the app name for the web package (Jaspr)
no setter

Methods

copyWith({String? appName, String? orgDomain, String? baseClassName, TemplateType? template, String? outputDir, bool? createModels, bool? createServer, bool? useFirebase, String? firebaseProjectId, bool? setupCloudRun, String? serviceAccountKeyPath, List<String>? platforms, bool? deployHostingRelease, bool? deployHostingBeta, String? firestoreRegion, bool? initializeFirestore, bool? initializeStorage, bool? enableEmailAuth, bool? enableGoogleAuth, bool? requireBlaze, bool? setupArtifactCleanup, int? artifactKeepRecent, int? artifactDeleteOlderDays, int? cloudRunKeepRevisions, JasprRenderMode? jasprRenderMode, String? jasprServerServiceName, String? embeddedFlutterMount, List<String>? hybridDynamicPrefixes}) SetupConfig
Create a copy with updated values
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
saveToFile(String path) Future<void>
Save configuration to file
toDisplayMap() Map<String, String>
Convert to map for display
toString() String
A string representation of this object.
override
toYamlString() String
Convert to YAML string for display

Operators

operator ==(Object other) bool
The equality operator.
inherited

Static Methods

loadFromFile(String path) Future<SetupConfig?>
Load configuration from file