{#if showHeading}

Finish setting up

{/if}

Your project is imported. For its apps and flows to actually run, they need a place to store data and credentials for the services they use — the import can't supply those for you.

{#if loading}
Checking what this project needs…
{:else if loadError} {loadError}. You can finish and configure them later in Workspace settings → Data tables. {:else} {#if rows.length > 0}
Data table{rows.length === 1 ? '' : 's'} to set up ({rows.length})

Where apps and flows keep the data they read and write.

{/if} {#if blanks.length > 0}
Credentials to fill ({blanks.length})
{/if} {#if outstanding === 0} Everything this project needs is configured. Finish, and it is ready to run. {:else if pendingTables.length === 0} The project's apps and flows will fail wherever they read a credential that is still missing. Everything else it imported works either way, and you can fill these in from the workspace at any time. {/if} {/if}
{#if onBack} {:else} {/if}
{#if outstanding > 0 && !loading && !loadError} {/if}
{#if wizardOpen || wizardFor} runMigrationsFor(retryTarget ?? '')} existingNames={configuredNames.map((c) => c.name)} existingDataTables={configuredNames} onDone={() => void afterWizard()} {customInstanceDbs} externalInstanceDbs={managed.externalDbs} externalInstanceAvailable={managed.externalAvailable} instanceAvailable={managed.instanceAvailable} refreshManagedInstances={managed.refresh} {confirmationModal} {defaultInstanceDbName} /> {/if} void refreshBlanks()} onRestored={() => void refreshBlanks()} /> void refreshBlanks()} /> choosing !== undefined, (v) => { if (!v && !reusing) choosing = undefined } } > {#if choosing} {@const forRow = choosing} {@const existing = candidates[forRow.resourceType] ?? []}

This workspace already has {existing.length} {resourceTypeDisplayName(forRow.resourceType)} {existing.length === 1 ? 'resource' : 'resources'}. Use one and this project's apps, flows and triggers are pointed at it.