fix indentation
This commit is contained in:
parent
fd4f031963
commit
94712bb7b8
1 changed files with 87 additions and 87 deletions
|
|
@ -341,107 +341,107 @@ export function ExportDialog({
|
||||||
</DialogHeader>
|
</DialogHeader>
|
||||||
|
|
||||||
<div className="space-y-4 py-4">
|
<div className="space-y-4 py-4">
|
||||||
<div className="flex items-center space-x-3">
|
<div className="flex items-center space-x-3">
|
||||||
<Checkbox
|
|
||||||
id="includeIds"
|
|
||||||
checked={includeIds}
|
|
||||||
onCheckedChange={(checked) => setIncludeIds(checked === true)}
|
|
||||||
/>
|
|
||||||
<Label htmlFor="includeIds" className="cursor-pointer">
|
|
||||||
Include database IDs
|
|
||||||
</Label>
|
|
||||||
</div>
|
|
||||||
<p className="text-xs text-muted-foreground ml-7">
|
|
||||||
Include internal database identifiers in the export. Useful for debugging or when IDs are needed for reference.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<div className="flex items-center space-x-3">
|
|
||||||
<Checkbox
|
|
||||||
id="includeTimestamps"
|
|
||||||
checked={includeTimestamps}
|
|
||||||
onCheckedChange={(checked) => setIncludeTimestamps(checked === true)}
|
|
||||||
/>
|
|
||||||
<Label htmlFor="includeTimestamps" className="cursor-pointer">
|
|
||||||
Include timestamps
|
|
||||||
</Label>
|
|
||||||
</div>
|
|
||||||
<p className="text-xs text-muted-foreground ml-7">
|
|
||||||
Include createdAt and updatedAt timestamps. Disable for cleaner exports when timestamps aren't needed.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<div className="flex items-center space-x-3">
|
|
||||||
<Checkbox
|
|
||||||
id="includeRuntimeState"
|
|
||||||
checked={includeRuntimeState}
|
|
||||||
onCheckedChange={(checked) => setIncludeRuntimeState(checked === true)}
|
|
||||||
/>
|
|
||||||
<Label htmlFor="includeRuntimeState" className="cursor-pointer">
|
|
||||||
Include runtime state
|
|
||||||
</Label>
|
|
||||||
</div>
|
|
||||||
<p className="text-xs text-muted-foreground ml-7">
|
|
||||||
Include current status, health checks, and last backup information. Usually not needed for migration.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
{hasSecrets && (
|
|
||||||
<>
|
|
||||||
<div className="flex items-center justify-between pt-2 border-t">
|
|
||||||
<Label className="cursor-pointer">Secrets handling</Label>
|
|
||||||
<Select value={secretsMode} onValueChange={(v) => setSecretsMode(v as SecretsMode)}>
|
|
||||||
<SelectTrigger className="w-40">
|
|
||||||
<SelectValue />
|
|
||||||
</SelectTrigger>
|
|
||||||
<SelectContent>
|
|
||||||
<SelectItem value="exclude">Exclude</SelectItem>
|
|
||||||
<SelectItem value="encrypted">Keep encrypted</SelectItem>
|
|
||||||
<SelectItem value="cleartext">Decrypt</SelectItem>
|
|
||||||
</SelectContent>
|
|
||||||
</Select>
|
|
||||||
</div>
|
|
||||||
<p className="text-xs text-muted-foreground">
|
|
||||||
{secretsMode === "exclude" && "Sensitive fields (passwords, API keys, webhooks) will be removed from the export."}
|
|
||||||
{secretsMode === "encrypted" && "Secrets will be exported in encrypted form. Requires the same recovery key to decrypt on import."}
|
|
||||||
{secretsMode === "cleartext" && (
|
|
||||||
<span className="text-yellow-600">
|
|
||||||
⚠️ Secrets will be decrypted and exported as plaintext. Keep this export secure!
|
|
||||||
</span>
|
|
||||||
)}
|
|
||||||
</p>
|
|
||||||
</>
|
|
||||||
)}
|
|
||||||
|
|
||||||
{isFullExport && (
|
|
||||||
<>
|
|
||||||
<div className="flex items-center space-x-3 pt-2 border-t">
|
|
||||||
<Checkbox
|
<Checkbox
|
||||||
id="includeRecoveryKey"
|
id="includeIds"
|
||||||
checked={includeRecoveryKey}
|
checked={includeIds}
|
||||||
onCheckedChange={(checked) => setIncludeRecoveryKey(checked === true)}
|
onCheckedChange={(checked) => setIncludeIds(checked === true)}
|
||||||
/>
|
/>
|
||||||
<Label htmlFor="includeRecoveryKey" className="cursor-pointer">
|
<Label htmlFor="includeIds" className="cursor-pointer">
|
||||||
Include recovery key
|
Include database IDs
|
||||||
</Label>
|
</Label>
|
||||||
</div>
|
</div>
|
||||||
<p className="text-xs text-muted-foreground ml-7">
|
<p className="text-xs text-muted-foreground ml-7">
|
||||||
<span className="text-yellow-600 font-medium">⚠️ Security sensitive:</span> The recovery key is the master encryption key for all repositories. Keep this export secure and never share it.
|
Include internal database identifiers in the export. Useful for debugging or when IDs are needed for reference.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div className="flex items-center space-x-3">
|
<div className="flex items-center space-x-3">
|
||||||
<Checkbox
|
<Checkbox
|
||||||
id="includePasswordHash"
|
id="includeTimestamps"
|
||||||
checked={includePasswordHash}
|
checked={includeTimestamps}
|
||||||
onCheckedChange={(checked) => setIncludePasswordHash(checked === true)}
|
onCheckedChange={(checked) => setIncludeTimestamps(checked === true)}
|
||||||
/>
|
/>
|
||||||
<Label htmlFor="includePasswordHash" className="cursor-pointer">
|
<Label htmlFor="includeTimestamps" className="cursor-pointer">
|
||||||
Include password hash
|
Include timestamps
|
||||||
</Label>
|
</Label>
|
||||||
</div>
|
</div>
|
||||||
<p className="text-xs text-muted-foreground ml-7">
|
<p className="text-xs text-muted-foreground ml-7">
|
||||||
Include the hashed admin password for seamless migration. The password is already securely hashed (argon2).
|
Include createdAt and updatedAt timestamps. Disable for cleaner exports when timestamps aren't needed.
|
||||||
</p>
|
</p>
|
||||||
</>
|
|
||||||
)}
|
<div className="flex items-center space-x-3">
|
||||||
</div>
|
<Checkbox
|
||||||
|
id="includeRuntimeState"
|
||||||
|
checked={includeRuntimeState}
|
||||||
|
onCheckedChange={(checked) => setIncludeRuntimeState(checked === true)}
|
||||||
|
/>
|
||||||
|
<Label htmlFor="includeRuntimeState" className="cursor-pointer">
|
||||||
|
Include runtime state
|
||||||
|
</Label>
|
||||||
|
</div>
|
||||||
|
<p className="text-xs text-muted-foreground ml-7">
|
||||||
|
Include current status, health checks, and last backup information. Usually not needed for migration.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
{hasSecrets && (
|
||||||
|
<>
|
||||||
|
<div className="flex items-center justify-between pt-2 border-t">
|
||||||
|
<Label className="cursor-pointer">Secrets handling</Label>
|
||||||
|
<Select value={secretsMode} onValueChange={(v) => setSecretsMode(v as SecretsMode)}>
|
||||||
|
<SelectTrigger className="w-40">
|
||||||
|
<SelectValue />
|
||||||
|
</SelectTrigger>
|
||||||
|
<SelectContent>
|
||||||
|
<SelectItem value="exclude">Exclude</SelectItem>
|
||||||
|
<SelectItem value="encrypted">Keep encrypted</SelectItem>
|
||||||
|
<SelectItem value="cleartext">Decrypt</SelectItem>
|
||||||
|
</SelectContent>
|
||||||
|
</Select>
|
||||||
|
</div>
|
||||||
|
<p className="text-xs text-muted-foreground">
|
||||||
|
{secretsMode === "exclude" && "Sensitive fields (passwords, API keys, webhooks) will be removed from the export."}
|
||||||
|
{secretsMode === "encrypted" && "Secrets will be exported in encrypted form. Requires the same recovery key to decrypt on import."}
|
||||||
|
{secretsMode === "cleartext" && (
|
||||||
|
<span className="text-yellow-600">
|
||||||
|
⚠️ Secrets will be decrypted and exported as plaintext. Keep this export secure!
|
||||||
|
</span>
|
||||||
|
)}
|
||||||
|
</p>
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
|
||||||
|
{isFullExport && (
|
||||||
|
<>
|
||||||
|
<div className="flex items-center space-x-3 pt-2 border-t">
|
||||||
|
<Checkbox
|
||||||
|
id="includeRecoveryKey"
|
||||||
|
checked={includeRecoveryKey}
|
||||||
|
onCheckedChange={(checked) => setIncludeRecoveryKey(checked === true)}
|
||||||
|
/>
|
||||||
|
<Label htmlFor="includeRecoveryKey" className="cursor-pointer">
|
||||||
|
Include recovery key
|
||||||
|
</Label>
|
||||||
|
</div>
|
||||||
|
<p className="text-xs text-muted-foreground ml-7">
|
||||||
|
<span className="text-yellow-600 font-medium">⚠️ Security sensitive:</span> The recovery key is the master encryption key for all repositories. Keep this export secure and never share it.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div className="flex items-center space-x-3">
|
||||||
|
<Checkbox
|
||||||
|
id="includePasswordHash"
|
||||||
|
checked={includePasswordHash}
|
||||||
|
onCheckedChange={(checked) => setIncludePasswordHash(checked === true)}
|
||||||
|
/>
|
||||||
|
<Label htmlFor="includePasswordHash" className="cursor-pointer">
|
||||||
|
Include password hash
|
||||||
|
</Label>
|
||||||
|
</div>
|
||||||
|
<p className="text-xs text-muted-foreground ml-7">
|
||||||
|
Include the hashed admin password for seamless migration. The password is already securely hashed (argon2).
|
||||||
|
</p>
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
|
||||||
<DialogFooter>
|
<DialogFooter>
|
||||||
<Button variant="outline" onClick={() => setOpen(false)}>
|
<Button variant="outline" onClick={() => setOpen(false)}>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue