feat(06-02): add sftp entry to registry, index, and rclone-conf

- Add sftp entry to BACKEND_REGISTRY with host, user, pass, key_pem fields
- Remove placeholder NOTE comment (sftp entry now present)
- Add sftp, onedrive, gcs, b2 to BACKEND_SCHEMAS in index.ts
- Add sftp, onedrive, gcs (google cloud storage), b2 to RCLONE_TYPE_MAP
- All 55 registry and rclone-conf tests pass; zero TypeScript errors
This commit is contained in:
2026-03-30 18:12:39 +02:00
parent 631470d5ac
commit c1d61d380c
3 changed files with 43 additions and 3 deletions
+35 -3
View File
@@ -16,9 +16,6 @@ export interface FieldDef {
options?: { value: string; label: string }[]; // for inputType: 'select'
}
// NOTE: 'sftp' entry is intentionally missing — Plan 02 (06-02-PLAN.md) adds it.
// The type cast below suppresses the incomplete-record error until that plan runs.
// eslint-disable-next-line @typescript-eslint/no-explicit-any
export const BACKEND_REGISTRY = {
azureblob: {
displayName: 'Azure Blob Storage',
@@ -180,6 +177,41 @@ export const BACKEND_REGISTRY = {
},
],
},
sftp: {
displayName: 'SFTP',
description: 'SSH File Transfer Protocol',
fields: [
{
key: 'host',
label: 'Host',
inputType: 'text',
required: true,
placeholder: 'sftp.example.com',
helpText: 'The SSH server hostname or IP address',
},
{
key: 'user',
label: 'Username',
inputType: 'text',
required: true,
placeholder: 'admin',
},
{
key: 'pass',
label: 'Password',
inputType: 'password',
required: false,
helpText: 'SFTP password. Note: rclone may require the password to be obscured using `rclone obscure <password>`. If authentication fails, use the obscured value instead of the plain password.',
},
{
key: 'key_pem',
label: 'Private Key (PEM)',
inputType: 'password',
required: false,
helpText: 'Paste your private key in PEM format (-----BEGIN ... PRIVATE KEY-----)',
},
],
},
b2: {
displayName: 'Backblaze B2',
description: 'Backblaze B2 Cloud Storage',