feat(10-03): enrich registry.ts with tooltipText and helpText for credential fields
- S3: access_key_id and secret_access_key get helpText + tooltipText (IAM console guidance) - S3: region gets tooltipText (where to find in S3 console) - S3-compatible: access_key_id, secret_access_key get helpText + tooltipText (provider-specific) - S3-compatible: endpoint gets tooltipText (common endpoint examples for Wasabi, R2, MinIO) - GCS: project_number gets tooltipText (numeric ID vs text project ID) - GCS: service_account_credentials gets tooltipText (IAM console steps + doc link) - B2: account and key get tooltipText (App Keys page, shown-once warning) - OneDrive: drive_id gets tooltipText (rclone authorize output, b! prefix) - SFTP host and user intentionally unchanged (self-explanatory per user decision) - Azure Blob, OneDrive token, SFTP pass/key_pem existing text untouched
This commit is contained in:
@@ -71,12 +71,16 @@ export const BACKEND_REGISTRY = {
|
||||
inputType: 'text',
|
||||
required: true,
|
||||
placeholder: 'AKIAIOSFODNN7EXAMPLE',
|
||||
helpText: 'The access key ID from your IAM credentials (starts with AKIA for long-term keys).',
|
||||
tooltipText: 'Find this in the AWS Console under IAM > Users > select user > Security credentials > Access keys. If you only have the secret key, you cannot recover the Key ID — create a new access key pair instead.',
|
||||
},
|
||||
{
|
||||
key: 'secret_access_key',
|
||||
label: 'Secret Access Key',
|
||||
inputType: 'password',
|
||||
required: true,
|
||||
helpText: 'The secret access key paired with your Access Key ID. Only shown once at creation time.',
|
||||
tooltipText: 'This value is shown only once when you create an access key in IAM. If you did not save it, delete the existing key and create a new one. Never share or commit this value — treat it as a password.',
|
||||
},
|
||||
{
|
||||
key: 'region',
|
||||
@@ -84,6 +88,7 @@ export const BACKEND_REGISTRY = {
|
||||
inputType: 'text',
|
||||
required: true,
|
||||
placeholder: 'us-east-1',
|
||||
tooltipText: 'The AWS region where your S3 bucket is located. Find this in the S3 console next to your bucket name (e.g. us-east-1, eu-west-2, ap-southeast-1).',
|
||||
validate: {
|
||||
regex: /^[a-z][a-z0-9-]+[a-z0-9]$/,
|
||||
message: 'Must be a valid AWS region format (e.g. us-east-1)',
|
||||
@@ -108,12 +113,16 @@ export const BACKEND_REGISTRY = {
|
||||
label: 'Access Key ID',
|
||||
inputType: 'text',
|
||||
required: true,
|
||||
helpText: 'The access key ID from your storage provider\'s dashboard.',
|
||||
tooltipText: 'Where to find this varies by provider: Wasabi — Account > Access Keys; Cloudflare R2 — R2 > Manage R2 API Tokens; MinIO — admin console > Identity > Users or Service Accounts.',
|
||||
},
|
||||
{
|
||||
key: 'secret_access_key',
|
||||
label: 'Secret Access Key',
|
||||
inputType: 'password',
|
||||
required: true,
|
||||
helpText: 'The secret key paired with your Access Key ID.',
|
||||
tooltipText: 'This value is typically shown only once when you create the key. Store it securely — if lost, you will need to generate a new key pair.',
|
||||
},
|
||||
{
|
||||
key: 'endpoint',
|
||||
@@ -122,6 +131,7 @@ export const BACKEND_REGISTRY = {
|
||||
required: true,
|
||||
placeholder: 'https://s3.wasabisys.com',
|
||||
helpText: 'The S3-compatible endpoint URL for your storage provider',
|
||||
tooltipText: 'Common endpoints: Wasabi — https://s3.wasabisys.com (or region-specific, e.g. https://s3.us-west-1.wasabisys.com); Cloudflare R2 — https://{account_id}.r2.cloudflarestorage.com; MinIO — your server URL with port (e.g. https://minio.example.com:9000).',
|
||||
},
|
||||
{
|
||||
key: 'region',
|
||||
@@ -153,6 +163,7 @@ export const BACKEND_REGISTRY = {
|
||||
required: true,
|
||||
placeholder: 'b!...',
|
||||
helpText: 'The drive ID from your OneDrive. Found in the rclone authorize output.',
|
||||
tooltipText: 'The drive ID appears in the JSON output of `rclone authorize "onedrive"` — look for the "drive_id" field in the response. It typically starts with "b!" for business/SharePoint drives. Personal OneDrive drive IDs look like a UUID.',
|
||||
},
|
||||
{
|
||||
key: 'drive_type',
|
||||
@@ -179,6 +190,7 @@ export const BACKEND_REGISTRY = {
|
||||
required: true,
|
||||
placeholder: '123456789',
|
||||
helpText: 'Your GCP project number (not project ID)',
|
||||
tooltipText: 'Found in Google Cloud Console > select your project > Dashboard > Project info card. This is the numeric ID (e.g. 123456789012) — not the text-based project ID like "my-project-name".',
|
||||
validate: {
|
||||
regex: /^\d+$/,
|
||||
message: 'Must contain digits only',
|
||||
@@ -191,6 +203,7 @@ export const BACKEND_REGISTRY = {
|
||||
required: true,
|
||||
placeholder: '{"type":"service_account","project_id":"..."}',
|
||||
helpText: 'Paste the full content of your service account JSON key file',
|
||||
tooltipText: 'Create a service account key at Google Cloud Console > IAM & Admin > Service Accounts > select or create an account > Keys > Add Key > Create new key > JSON. Paste the entire contents of the downloaded JSON file here. See https://cloud.google.com/iam/docs/keys-create-delete for detailed steps.',
|
||||
},
|
||||
],
|
||||
},
|
||||
@@ -240,6 +253,7 @@ export const BACKEND_REGISTRY = {
|
||||
required: true,
|
||||
placeholder: 'your-application-key-id',
|
||||
helpText: 'The applicationKeyId — not the master account ID',
|
||||
tooltipText: 'Found in Backblaze B2 > App Keys. The applicationKeyId is the shorter alphanumeric ID listed next to your key — not the master account ID shown in your account settings.',
|
||||
},
|
||||
{
|
||||
key: 'key',
|
||||
@@ -247,6 +261,7 @@ export const BACKEND_REGISTRY = {
|
||||
inputType: 'password',
|
||||
required: true,
|
||||
helpText: 'The application key (secret value from the B2 dashboard)',
|
||||
tooltipText: 'The application key value is shown only once when you create a new app key in B2 > App Keys. Copy it immediately — it cannot be retrieved later. If lost, delete the key and create a new one.',
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user