← Public packages
@kentcdodds/onepassword
Resolve 1Password Connect item fields for secret-aware fetch with website host allowlisting.
connect/deploy-fly.d.ts
86 lines · 2.2 KB · TypeScriptexport type DeployFlyInput = {
appName?: string
organizationId?: string
region?: string
machineName?: string
apiImage?: string
syncImage?: string
memoryMb?: number
replaceExisting?: boolean
settleMs?: number
}
export type DeployFlyResult = {
ok: true
appName: string
url: string
region: string
heartbeatUrl: string
vaultsUrl: string
app: { created: boolean; app: { id?: string; name: string } }
ips: {
allocated: Array<{ type: string; address?: string }>
existingCount: number
}
volume?: {
created: boolean
id: string
name: string
region: string
mountPath: string
}
secrets: {
id?: string
version?: number
reason?: string
createdAt?: string
keysSet: string[]
sourceSecret?: string
} | null
machine: {
created: {
id?: string
state?: string
containers: Array<{ name?: string; image?: string }>
}
deleted: Array<unknown>
}
machines: Array<{
id: string
name?: string
state?: string
region?: string
updated_at?: string
containers?: Array<{ name?: string; image?: string }>
}>
bind: {
provider: '1password'
door_secret_name: 'ONEPASSWORD_CONNECT_TOKEN'
config: { connectHost: string }
}
notes: string[]
nextStepsIfBlocked: {
opSessionPrefill: string
flyTokenHostsPrefill: string
requiredHosts: string[]
}
}
/**
* Deploy 1Password Connect Server to Fly.io using Kody secrets.
*
* Requires user secrets `flyApiToken` and `ONEPASSWORD_CONNECT_OP_SESSION`
* (Base64 of 1password-credentials.json — not raw JSON). Mounts credentials via
* Machines `config.files.raw_value`, sets container `OP_SESSION` to the file path,
* attaches persistent volume `opdata` at `/opdata` (`XDG_DATA_HOME`). Does not return secret values.
*
* @param params.appName - Fly app name (defaults to kody-onepassword-connect).
* @param params.region - Fly region (defaults to ams).
* @returns Deployment status with appName, url, region, machine info, and bind args.
*
* @example
* import deploy from 'kody:@kentcdodds/onepassword/connect/deploy-fly'
* const result = await deploy({ settleMs: 12000 })
* // => { ok: true, appName: 'kody-onepassword-connect', url: 'https://kody-onepassword-connect.fly.dev', ... }
*/
export default function deployFly(params?: DeployFlyInput): Promise<DeployFlyResult>