{
  "@context": [
    "https://linkedsoftwaredependencies.org/bundles/npm/@solid/community-server/^8.0.0/components/context.jsonld",
    "https://linkedsoftwaredependencies.org/bundles/npm/@undefineds.co/xpod/^0.0.0/components/context.jsonld"
  ],
  "@graph": [
    {
      "comment": "Extend the CLI with additional parameters. All use CSS_ env prefix via Yargs.",
      "@id": "urn:solid-server-app-setup:default:CliExtractor",
      "@type": "YargsCliExtractor",
      "parameters": [
        {
          "comment": "=== Visible CLI parameters (核心模式开关) ===",
          "@type": "YargsParameter",
          "name": "edition",
          "options": {
            "type": "string",
            "describe": "Xpod edition: server or local"
          }
        },
        {
          "@type": "YargsParameter",
          "name": "authMode",
          "options": {
            "type": "string",
            "describe": "Authorization mode: acp, acl, or allow-all",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "edgeNodesEnabled",
          "options": {
            "type": "boolean",
            "describe": "Enable edge node registry and routing."
          }
        },
        {
          "@type": "YargsParameter",
          "name": "centerRegistrationEnabled",
          "options": {
            "type": "boolean",
            "describe": "Enable center node registration for multi-node clusters."
          }
        },
        {
          "comment": "=== Hidden: Data Layer ===",
          "@type": "YargsParameter",
          "name": "identityDbUrl",
          "options": {
            "type": "string",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "usageDbUrl",
          "options": {
            "type": "string",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "rdfIndexPath",
          "options": {
            "type": "string",
            "hidden": true
          }
        },
        {
          "comment": "=== Hidden: CSS seeding (resolved by the upstream CSS variable resolver) ===",
          "@type": "YargsParameter",
          "name": "seedConfig",
          "options": {
            "type": "string",
            "requiresArg": true,
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "minioAccessKey",
          "options": {
            "type": "string",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "minioSecretKey",
          "options": {
            "type": "string",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "minioEndpoint",
          "options": {
            "type": "string",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "minioBucketName",
          "options": {
            "type": "string",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "redisClient",
          "options": {
            "type": "string",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "redisUsername",
          "options": {
            "type": "string",
            "default": "",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "redisPassword",
          "options": {
            "type": "string",
            "default": "",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "emailConfigHost",
          "options": {
            "type": "string",
            "default": "",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "emailConfigPort",
          "options": {
            "type": "number",
            "default": 587,
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "emailConfigAuthUser",
          "options": {
            "type": "string",
            "default": "",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "emailConfigAuthPass",
          "options": {
            "type": "string",
            "hidden": true
          }
        },
        {
          "comment": "=== Hidden: Business Features ===",
          "@type": "YargsParameter",
          "name": "clusterIngressDomain",
          "options": {
            "type": "string",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "clusterIngressIp",
          "options": {
            "type": "string",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "dnsRecordTtl",
          "options": {
            "type": "number",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "tencentDnsTokenId",
          "options": {
            "type": "string",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "tencentDnsToken",
          "options": {
            "type": "string",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "tencentDnsBaseUrl",
          "options": {
            "type": "string",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "tencentDnsDefaultLineId",
          "options": {
            "type": "string",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "edgeHealthProbesEnabled",
          "options": {
            "type": "boolean",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "edgeHealthProbeTimeout",
          "options": {
            "type": "number",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "frpServerHost",
          "options": {
            "type": "string",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "frpServerPort",
          "options": {
            "type": "number",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "frpToken",
          "options": {
            "type": "string",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "frpProtocol",
          "options": {
            "type": "string",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "nodeId",
          "options": {
            "type": "string",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "nodeHeartbeatInterval",
          "options": {
            "type": "number",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "edgeNodeAgentEnabled",
          "options": {
            "type": "boolean",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "signalEndpoint",
          "options": {
            "type": "string",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "nodeToken",
          "options": {
            "type": "string",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "acmeMode",
          "options": {
            "type": "string",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "acmeEmail",
          "options": {
            "type": "string",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "acmeDomains",
          "options": {
            "type": "string",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "acmeDirectoryUrl",
          "options": {
            "type": "string",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "acmeAccountKeyPath",
          "options": {
            "type": "string",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "acmeCertificateKeyPath",
          "options": {
            "type": "string",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "acmeCertificatePath",
          "options": {
            "type": "string",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "acmeFullChainPath",
          "options": {
            "type": "string",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "acmeRenewBeforeDays",
          "options": {
            "type": "number",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "acmePropagationDelayMs",
          "options": {
            "type": "number",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "acmePostDeployCommand",
          "options": {
            "type": "string",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "p2pEnabled",
          "options": {
            "type": "boolean",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "p2pTargetBaseUrl",
          "options": {
            "type": "string",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "p2pLabel",
          "options": {
            "type": "string",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "p2pAcceptIntervalMs",
          "options": {
            "type": "number",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "p2pConnectTimeoutMs",
          "options": {
            "type": "number",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "p2pWinnerSelectionWindowMs",
          "options": {
            "type": "number",
            "hidden": true
          }
        },
        {
          "comment": "=== Hidden: Multi-Node Center Deployment ===",
          "@type": "YargsParameter",
          "name": "podRoutingEnabled",
          "options": {
            "type": "boolean",
            "hidden": true
          }
        },
        {
          "comment": "=== Hidden: IdP/SP Separation ===",
          "@type": "YargsParameter",
          "name": "baseStorageDomain",
          "options": {
            "type": "string",
            "describe": "Root domain for edge/SP node DNS records (e.g. undefineds.site)",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "oidcIssuer",
          "options": {
            "type": "string",
            "hidden": true
          }
        },
        {
          "@type": "YargsParameter",
          "name": "allowedHosts",
          "options": {
            "type": "string",
            "hidden": true
          }
        }
      ]
    }
  ]
}
