<commit_before>module.exports = [
  {
    source: '/trial',
    destination: 'https://www.hashicorp.com/products/vault/trial',
    permanent: true,
  },
  {
    source: '/intro',
    destination: '/intro/getting-started',
    permanent: false,
  },
  {
    source: '/api/secret/generic',
    destination: '/api-docs/secret/kv',
    permanent: true,
  },
  {
    source: '/api/system/renew',
    destination: '/api-docs/system/leases',
    permanent: true,
  },
  {
    source: '/api/system/revoke-force',
    destination: '/api-docs/system/leases',
    permanent: true,
  },
  {
    source: '/api/system/revoke-prefix',
    destination: '/api-docs/system/leases',
    permanent: true,
  },
  {
    source: '/api/system/revoke',
    destination: '/api-docs/system/leases',
    permanent: true,
  },
  {
    source: '/docs/auth/aws-ec2',
    destination: '/docs/auth/aws',
    permanent: true,
  },
  {
    source: '/docs/auth/jwt_oidc_providers',
    destination: '/docs/auth/jwt/oidc_providers',
    permanent: true,
  },
  {
    source: '/docs/commands/environment',
    destination: '/docs/commands/#environment-variables',
    permanent: true,
  },
  {
    source: '/docs/commands/help',
    destination: '/docs/commands/path-help',
    permanent: true,
  },
  {
    source: '/docs/commands/read-write',
    destination: '/docs/commands#reading-and-writing-data',
    permanent: true,
  },
  {
    source: '/docs/config',
    destination: '/docs/configuration',
    permanent: true,
  },
  {
    source: '/docs/configuration/storage/google-cloud',
    destination: '/docs/configuration/storage/google-cloud-storage',
    permanent: true,
  },
  {
    source: '/docs/configuration/storage/spanner',
    destination: '/docs/configuration/storage/google-cloud-spanner',
    permanent: true,
  },
  {
    source: '/docs/enterprise/auto-unseal',
    destination: '/docs/concepts/seal.html',
    permanent: true,
  },
  {
    source: '/docs/enterprise/hsm/configuration',
    destination: '/docs/configuration/seal/pkcs11',
    permanent: true,
  },
  {
    source: '/docs/enterprise/ui',
    destination: '/docs/configuration/ui',
    permanent: true,
  },
  {
    source: '/docs/enterprise/automated-raft-snapshots',
    destination: '/docs/enterprise/automated-integrated-storage-snapshots',
    permanent: true,
  },
  {
    source: '/docs/guides/generate-root',
    destination: '/guides/operations/generate-root',
    permanent: true,
  },
  { source: '/docs/guides', destination: '/guides', permanent: true },
  {
    source: '/docs/guides/production',
    destination: '/guides/operations/production',
    permanent: true,
  },
  {
    source: '/docs/guides/replication',
    destination: '/guides/operations/replication',
    permanent: true,
  },
  {
    source: '/docs/guides/upgrading',
    destination: '/docs/upgrading',
    permanent: true,
  },
  {
    source: '/docs/http/sys-audit',
    destination: '/api-docs/system/audit',
    permanent: true,
  },
  {
    source: '/docs/http/sys-auth',
    destination: '/api-docs/system/auth',
    permanent: true,
  },
  {
    source: '/docs/http/sys-health',
    destination: '/api-docs/system/health',
    permanent: true,
  },
  {
    source: '/docs/http/sys-init',
    destination: '/api-docs/system/init',
    permanent: true,
  },
  {
    source: '/docs/http/sys-key-status',
    destination: '/api-docs/system/key-status',
    permanent: true,
  },
  {
    source: '/docs/http/sys-leader',
    destination: '/api-docs/system/leader',
    permanent: true,
  },
  {
    source: '/docs/http/sys-mounts',
    destination: '/api-docs/system/mounts',
    permanent: true,
  },
  {
    source: '/docs/http/sys-policy',
    destination: '/api-docs/system/policy',
    permanent: true,
  },
  {
    source: '/docs/http/sys-raw',
    destination: '/api-docs/system/raw',
    permanent: true,
  },
  {
    source: '/docs/http/sys-rekey',
    destination: '/api-docs/system/rekey',
    permanent: true,
  },
  {
    source: '/docs/http/sys-remount',
    destination: '/api-docs/system/remount',
    permanent: true,
  },
  {
    source: '/docs/http/sys-renew',
    destination: '/api-docs/system/leases',
    permanent: true,
  },
  {
    source: '/docs/http/sys-revoke-prefix',
    destination: '/api-docs/system/leases',
    permanent: true,
  },
  {
    source: '/docs/http/sys-revoke',
    destination: '/api-docs/system/leases',
    permanent: true,
  },
  {
    source: '/docs/http/sys-rotate',
    destination: '/api-docs/system/rotate',
    permanent: true,
  },
  {
    source: '/docs/http/sys-seal-status',
    destination: '/api-docs/system/seal-status',
    permanent: true,
  },
  {
    source: '/docs/http/sys-seal',
    destination: '/api-docs/system/seal',
    permanent: true,
  },
  {
    source: '/docs/http/sys-unseal',
    destination: '/api-docs/system/unseal',
    permanent: true,
  },
  {
    source: '/docs/install/install',
    destination: '/docs/install',
    permanent: true,
  },
  {
    source: '/docs/secrets/custom',
    destination: '/docs/plugin',
    permanent: true,
  },
  {
    source: '/docs/secrets/generic',
    destination: '/docs/secrets/kv',
    permanent: true,
  },
  {
    source: '/docs/vault-enterprise/hsm/behavior',
    destination: '/docs/enterprise/hsm/behavior',
    permanent: true,
  },
  {
    source: '/docs/vault-enterprise/hsm/configuration',
    destination: '/docs/enterprise/hsm/configuration',
    permanent: true,
  },
  {
    source: '/docs/vault-enterprise/hsm',
    destination: '/docs/enterprise/hsm',
    permanent: true,
  },
  {
    source: '/docs/vault-enterprise/hsm/security',
    destination: '/docs/enterprise/hsm/security',
    permanent: true,
  },
  {
    source: '/docs/vault-enterprise/identity',
    destination: '/docs/enterprise/identity',
    permanent: true,
  },
  {
    source: '/docs/vault-enterprise',
    destination: '/docs/enterprise',
    permanent: true,
  },
  {
    source: '/docs/vault-enterprise/mfa',
    destination: '/docs/enterprise/mfa',
    permanent: true,
  },
  {
    source: '/docs/vault-enterprise/mfa/mfa-duo',
    destination: '/docs/enterprise/mfa/mfa-duo',
    permanent: true,
  },
  {
    source: '/docs/vault-enterprise/mfa/mfa-okta',
    destination: '/docs/enterprise/mfa/mfa-okta',
    permanent: true,
  },
  {
    source: '/docs/vault-enterprise/mfa/mfa-pingid',
    destination: '/docs/enterprise/mfa/mfa-pingid',
    permanent: true,
  },
  {
    source: '/docs/vault-enterprise/mfa/mfa-totp',
    destination: '/docs/enterprise/mfa/mfa-totp',
    permanent: true,
  },
  {
    source: '/docs/vault-enterprise/replication',
    destination: '/docs/enterprise/replication',
    permanent: true,
  },
  {
    source: '/docs/vault-enterprise/ui',
    destination: '/docs/configuration/ui',
    permanent: true,
  },
  {
    source: '/docs/secrets/cassandra',
    destination: '/docs/secrets/databases/cassandra',
    permanent: true,
  },
  {
    source: '/docs/secrets/mongodb',
    destination: '/docs/secrets/databases/mongodb',
    permanent: true,
  },
  {
    source: '/docs/secrets/mssql',
    destination: '/docs/secrets/databases/mssql',
    permanent: true,
  },
  {
    source: '/docs/secrets/mysql',
    destination: '/docs/secrets/databases/mysql-maria',
    permanent: true,
  },
  {
    source: '/docs/secrets/postgresql',
    destination: '/docs/secrets/databases/postgresql',
    permanent: true,
  },
  {
    source: '/guides/authentication',
    destination: '/guides/identity/authentication',
    permanent: true,
  },
  {
    source: '/guides/configuration/authentication',
    destination: '/guides/identity/authentication',
    permanent: true,
  },
  {
    source: '/guides/configuration/generate-root',
    destination: '/guides/operations/generate-root',
    permanent: true,
  },
  {
    source: '/guides/configuration/lease',
    destination: '/guides/identity/lease',
    permanent: true,
  },
  {
    source: '/guides/configuration/plugin-backends',
    destination: '/guides/operations/plugin-backends',
    permanent: true,
  },
  {
    source: '/guides/configuration/policies',
    destination: '/guides/identity/policies',
    permanent: true,
  },
  {
    source: '/guides/cubbyhole',
    destination: '/guides/secret-mgmt/cubbyhole',
    permanent: true,
  },
  {
    source: '/guides/dynamic-secret',
    destination: '/guides/secret-mgmt/dynamic-secret',
    permanent: true,
  },
  {
    source: '/guides/generate-root',
    destination: '/guides/operations/generate-root',
    permanent: true,
  },
  {
    source: '/guides/lease',
    destination: '/guides/identity/lease',
    permanent: true,
  },
  {
    source: '/guides/plugin-backends',
    destination: '/guides/operations/plugin-backends',
    permanent: true,
  },
  {
    source: '/guides/policies',
    destination: '/guides/identity/policies',
    permanent: true,
  },
  {
    source: '/guides/production',
    destination: '/guides/operations/production',
    permanent: true,
  },
  {
    source: '/guides/rekeying-and-rotating',
    destination: '/guides/operations/rekeying-and-rotating',
    permanent: true,
  },
  {
    source: '/guides/replication',
    destination: '/guides/operations/replication',
    permanent: true,
  },
  {
    source: '/guides/static-secrets',
    destination: '/guides/secret-mgmt/static-secrets',
    permanent: true,
  },
  {
    source: '/intro/getting-started/acl',
    destination: '/intro/getting-started/policies',
    permanent: true,
  },
  {
    source: '/intro/getting-started/secret-backends',
    destination: '/intro/getting-started/secrets-engines',
    permanent: true,
  },
  {
    source: '/guides/configuration/rekeying-and-rotating',
    destination: '/guides/operations/rekeying-and-rotating',
    permanent: true,
  },
  {
    source: '/docs/guides/upgrading/:path*',
    destination: '/docs/upgrading/:path*',
    permanent: true,
  },
  {
    source: '/guides/upgrading/:path*',
    destination: '/docs/upgrading/:path*',
    permanent: true,
  },
  {
    source: '/docs/install/upgrade-:path*',
    destination: '/docs/upgrading/upgrade-:path*',
    permanent: true,
  },
  {
    source: '/docs/install/upgrade',
    destination: '/docs/upgrading',
    permanent: true,
  },
  // Guides and Intro redirects to Learn
  {
    source: '/guides/getting-started',
    destination: 'https://learn.hashicorp.com/vault',
    permanent: true,
  },
  {
    source: '/guides/operations',
    destination: 'https://learn.hashicorp.com/collections/vault/operations',
    permanent: true,
  },
  {
    source: '/guides/operations/reference-architecture',
    destination:
      'https://learn.hashicorp.com/tutorials/vault/reference-architecture',
    permanent: true,
  },
  {
    source: '/guides/operations/deployment-guide',
    destination: 'https://learn.hashicorp.com/tutorials/vault/deployment-guide',
    permanent: true,
  },
  {
    source: '/guides/operations/vault-ha-consul',
    destination: 'https://learn.hashicorp.com/tutorials/vault/ha-with-consul',
    permanent: true,
  },
  {
    source: '/guides/operations/production',
    destination:
      'https://learn.hashicorp.com/tutorials/vault/production-hardening',
    permanent: true,
  },
  {
    source: '/guides/operations/generate-root',
    destination: 'https://learn.hashicorp.com/tutorials/vault/generate-root',
    permanent: true,
  },
  {
    source: '/guides/operations/rekeying-and-rotating',
    destination:
      'https://learn.hashicorp.com/tutorials/vault/rekeying-and-rotating',
    permanent: true,
  },
  {
    source: '/guides/operations/plugin-backends',
    destination: 'https://learn.hashicorp.com/tutorials/vault/plugin-backends',
    permanent: true,
  },
  {
    source: '/guides/operations/replication',
    destination:
      'https://learn.hashicorp.com/tutorials/vault/performance-replication',
    permanent: true,
  },
  {
    source: '/guides/operations/disaster-recovery',
    destination:
      'https://learn.hashicorp.com/tutorials/vault/disaster-recovery',
    permanent: true,
  },
  {
    source: '/guides/operations/mount-filter',
    destination: 'https://learn.hashicorp.com/tutorials/vault/paths-filter',
    permanent: true,
  },
  {
    source: '/guides/operations/performance-nodes',
    destination:
      'https://learn.hashicorp.com/tutorials/vault/performance-standbys',
    permanent: true,
  },
  {
    source: '/guides/operations/multi-tenant',
    destination: 'https://learn.hashicorp.com/tutorials/vault/namespaces',
    permanent: true,
  },
  {
    source: '/guides/operations/autounseal-aws-kms',
    destination:
      'https://learn.hashicorp.com/tutorials/vault/autounseal-aws-kms',
    permanent: true,
  },
  {
    source: '/guides/operations/seal-wrap',
    destination: 'https://learn.hashicorp.com/tutorials/vault/seal-wrap',
    permanent: true,
  },
  {
    source: '/guides/operations/monitoring',
    destination: 'https://learn.hashicorp.com/tutorials/vault/monitoring',
    permanent: true,
  },
  // Identity
  {
    source: '/guides/identity',
    destination: 'https://learn.hashicorp.com/collections/vault/operations',
    permanent: true,
  },
  {
    source: '/guides/identity/secure-intro',
    destination:
      'https://learn.hashicorp.com/tutorials/vault/secure-introduction',
    permanent: true,
  },
  {
    source: '/guides/identity/policies',
    destination: 'https://learn.hashicorp.com/tutorials/vault/policies',
    permanent: true,
  },
  {
    source: '/guides/identity/policy-templating',
    destination:
      'https://learn.hashicorp.com/tutorials/vault/policy-templating',
    permanent: true,
  },
  {
    source: '/guides/identity/authentication',
    destination: 'https://learn.hashicorp.com/tutorials/vault/approle',
    permanent: true,
  },
  {
    source: '/guides/identity/approle-trusted-entities',
    destination:
      'https://learn.hashicorp.com/tutorials/vault/approle-trusted-entities',
    permanent: true,
  },
  {
    source: '/guides/identity/lease',
    destination: 'https://learn.hashicorp.com/tutorials/vault/tokens',
    permanent: true,
  },
  {
    source: '/guides/identity/identity',
    destination: 'https://learn.hashicorp.com/tutorials/vault/identity',
    permanent: true,
  },
  {
    source: '/guides/identity/sentinel',
    destination: 'https://learn.hashicorp.com/tutorials/vault/sentinel',
    permanent: true,
  },
  {
    source: '/guides/identity/control-groups',
    destination: 'https://learn.hashicorp.com/tutorials/vault/control-groups',
    permanent: true,
  },
  // Secrets management
  {
    source: '/guides/secret-mgmt/index.html',
    destination:
      'https://learn.hashicorp.com/collections/vault/secrets-management',
    permanent: true,
  },
  {
    source: '/guides/secret-mgmt/static-secrets',
    destination:
      'https://learn.hashicorp.com/vault/secrets-management/sm-static-secrets',
    permanent: true,
  },
  {
    source: '/guides/secret-mgmt/versioned-kv',
    destination:
      'https://learn.hashicorp.com/vault/secrets-management/sm-versioned-kv',
    permanent: true,
  },
  {
    source: '/guides/secret-mgmt/dynamic-secrets',
    destination:
      'https://learn.hashicorp.com/vault/secrets-management/sm-dynamic-secrets',
    permanent: true,
  },
  {
    source: '/guides/secret-mgmt/db-root-rotation',
    destination:
      'https://learn.hashicorp.com/vault/secrets-management/db-root-rotation',
    permanent: true,
  },
  {
    source: '/guides/secret-mgmt/cubbyhole',
    destination:
      'https://learn.hashicorp.com/vault/secrets-management/sm-cubbyhole',
    permanent: true,
  },
  {
    source: '/guides/secret-mgmt/ssh-otp',
    destination:
      'https://learn.hashicorp.com/vault/secrets-management/sm-ssh-otp',
    permanent: true,
  },
  {
    source: '/guides/secret-mgmt/pki-engine',
    destination:
      'https://learn.hashicorp.com/vault/secrets-management/sm-pki-engine',
    permanent: true,
  },
  {
    source: '/guides/secret-mgmt/app-integration',
    destination:
      'https://learn.hashicorp.com/vault/developer/sm-app-integration',
    permanent: true,
  },
  // Encryption
  {
    source: '/guides/encryption',
    destination:
      'https://learn.hashicorp.com/collections/vault/encryption-as-a-service',
    permanent: true,
  },
  {
    source: '/guides/encryption/transit',
    destination:
      'https://learn.hashicorp.com/vault/encryption-as-a-service/eaas-transit',
    permanent: true,
  },
  {
    source: '/guides/encryption/spring-demo',
    destination:
      'https://learn.hashicorp.com/vault/encryption-as-a-service/eaas-spring-demo',
    permanent: true,
  },
  {
    source: '/guides/encryption/transit-rewrap',
    destination:
      'https://learn.hashicorp.com/vault/encryption-as-a-service/eaas-transit-rewrap',
    permanent: true,
  },
  // Intro getting started content -> Learn
  {
    source: '/intro',
    destination:
      'https://learn.hashicorp.com/collections/vault/getting-started',
    permanent: true,
  },
  {
    source: '/intro/getting-started',
    destination: 'https://learn.hashicorp.com/vault/getting-started/install',
    permanent: true,
  },
  {
    source: '/intro/getting-started/install',
    destination:
      'https://learn.hashicorp.com/tutorials/vault/getting-started-install',
    permanent: true,
  },
  {
    source: '/intro/getting-started/dev-server',
    destination: 'https://learn.hashicorp.com/vault/getting-started/dev-server',
    permanent: true,
  },
  {
    source: '/intro/getting-started/first-secret',
    destination:
      'https://learn.hashicorp.com/vault/getting-started/first-secret',
    permanent: true,
  },
  {
    source: '/intro/getting-started/secrets-engines',
    destination:
      'https://learn.hashicorp.com/vault/getting-started/secrets-engines',
    permanent: true,
  },
  {
    source: '/intro/getting-started/dynamic-secrets',
    destination:
      'https://learn.hashicorp.com/vault/getting-started/dynamic-secrets',
    permanent: true,
  },
  {
    source: '/intro/getting-started/help',
    destination: 'https://learn.hashicorp.com/vault/getting-started/help',
    permanent: true,
  },
  {
    source: '/intro/getting-started/authentication',
    destination:
      'https://learn.hashicorp.com/vault/getting-started/authentication',
    permanent: true,
  },
  {
    source: '/intro/getting-started/policies',
    destination: 'https://learn.hashicorp.com/vault/getting-started/policies',
    permanent: true,
  },
  {
    source: '/intro/getting-started/deploy',
    destination: 'https://learn.hashicorp.com/vault/getting-started/deploy',
    permanent: true,
  },
  {
    source: '/intro/getting-started/apis',
    destination: 'https://learn.hashicorp.com/vault/getting-started/apis',
    permanent: true,
  },
  {
    source: '/intro/getting-started/next-steps',
    destination: 'https://learn.hashicorp.com/vault/getting-started/next-steps',
    permanent: true,
  },
  // Rearranged out of `guides` but still on `.io`
  {
    source: '/guides/partnerships',
    destination: '/docs/partnerships',
    permanent: true,
  },
  {
    source: '/intro/use-cases',
    destination: '/docs/use-cases',
    permanent: true,
  },
  { source: '/intro/vs', destination: '/docs/vs', permanent: true },
  { source: '/intro/vs/:path*', destination: '/docs/vs', permanent: true },
  {
    source: '/intro/what-is-vault',
    destination: '/docs/what-is-vault',
    permanent: true,
  },
  // disallow '.html' or '/index.html' in favor of cleaner, simpler paths
  { source: '/:path*/index', destination: '/:path*', permanent: true },
  { source: '/:path*.html', destination: '/:path*', permanent: true },
]
<commit_msg>Add website redirect to fix faqs -> faq issue (#12195)<commit_after>module.exports = [
  {
    source: '/trial',
    destination: 'https://www.hashicorp.com/products/vault/trial',
    permanent: true,
  },
  {
    source: '/intro',
    destination: '/intro/getting-started',
    permanent: false,
  },
  {
    source: '/api/secret/generic',
    destination: '/api-docs/secret/kv',
    permanent: true,
  },
  {
    source: '/api/system/renew',
    destination: '/api-docs/system/leases',
    permanent: true,
  },
  {
    source: '/api/system/revoke-force',
    destination: '/api-docs/system/leases',
    permanent: true,
  },
  {
    source: '/api/system/revoke-prefix',
    destination: '/api-docs/system/leases',
    permanent: true,
  },
  {
    source: '/api/system/revoke',
    destination: '/api-docs/system/leases',
    permanent: true,
  },
  {
    source: '/docs/auth/aws-ec2',
    destination: '/docs/auth/aws',
    permanent: true,
  },
  {
    source: '/docs/auth/jwt_oidc_providers',
    destination: '/docs/auth/jwt/oidc_providers',
    permanent: true,
  },
  {
    source: '/docs/commands/environment',
    destination: '/docs/commands/#environment-variables',
    permanent: true,
  },
  {
    source: '/docs/commands/help',
    destination: '/docs/commands/path-help',
    permanent: true,
  },
  {
    source: '/docs/commands/read-write',
    destination: '/docs/commands#reading-and-writing-data',
    permanent: true,
  },
  {
    source: '/docs/config',
    destination: '/docs/configuration',
    permanent: true,
  },
  {
    source: '/docs/configuration/storage/google-cloud',
    destination: '/docs/configuration/storage/google-cloud-storage',
    permanent: true,
  },
  {
    source: '/docs/configuration/storage/spanner',
    destination: '/docs/configuration/storage/google-cloud-spanner',
    permanent: true,
  },
  {
    source: '/docs/enterprise/auto-unseal',
    destination: '/docs/concepts/seal.html',
    permanent: true,
  },
  {
    source: '/docs/enterprise/license/faqs',
    destination: '/docs/enterprise/license/faq',
    permanent: true,
  },
  {
    source: '/docs/enterprise/hsm/configuration',
    destination: '/docs/configuration/seal/pkcs11',
    permanent: true,
  },
  {
    source: '/docs/enterprise/ui',
    destination: '/docs/configuration/ui',
    permanent: true,
  },
  {
    source: '/docs/enterprise/automated-raft-snapshots',
    destination: '/docs/enterprise/automated-integrated-storage-snapshots',
    permanent: true,
  },
  {
    source: '/docs/guides/generate-root',
    destination: '/guides/operations/generate-root',
    permanent: true,
  },
  { source: '/docs/guides', destination: '/guides', permanent: true },
  {
    source: '/docs/guides/production',
    destination: '/guides/operations/production',
    permanent: true,
  },
  {
    source: '/docs/guides/replication',
    destination: '/guides/operations/replication',
    permanent: true,
  },
  {
    source: '/docs/guides/upgrading',
    destination: '/docs/upgrading',
    permanent: true,
  },
  {
    source: '/docs/http/sys-audit',
    destination: '/api-docs/system/audit',
    permanent: true,
  },
  {
    source: '/docs/http/sys-auth',
    destination: '/api-docs/system/auth',
    permanent: true,
  },
  {
    source: '/docs/http/sys-health',
    destination: '/api-docs/system/health',
    permanent: true,
  },
  {
    source: '/docs/http/sys-init',
    destination: '/api-docs/system/init',
    permanent: true,
  },
  {
    source: '/docs/http/sys-key-status',
    destination: '/api-docs/system/key-status',
    permanent: true,
  },
  {
    source: '/docs/http/sys-leader',
    destination: '/api-docs/system/leader',
    permanent: true,
  },
  {
    source: '/docs/http/sys-mounts',
    destination: '/api-docs/system/mounts',
    permanent: true,
  },
  {
    source: '/docs/http/sys-policy',
    destination: '/api-docs/system/policy',
    permanent: true,
  },
  {
    source: '/docs/http/sys-raw',
    destination: '/api-docs/system/raw',
    permanent: true,
  },
  {
    source: '/docs/http/sys-rekey',
    destination: '/api-docs/system/rekey',
    permanent: true,
  },
  {
    source: '/docs/http/sys-remount',
    destination: '/api-docs/system/remount',
    permanent: true,
  },
  {
    source: '/docs/http/sys-renew',
    destination: '/api-docs/system/leases',
    permanent: true,
  },
  {
    source: '/docs/http/sys-revoke-prefix',
    destination: '/api-docs/system/leases',
    permanent: true,
  },
  {
    source: '/docs/http/sys-revoke',
    destination: '/api-docs/system/leases',
    permanent: true,
  },
  {
    source: '/docs/http/sys-rotate',
    destination: '/api-docs/system/rotate',
    permanent: true,
  },
  {
    source: '/docs/http/sys-seal-status',
    destination: '/api-docs/system/seal-status',
    permanent: true,
  },
  {
    source: '/docs/http/sys-seal',
    destination: '/api-docs/system/seal',
    permanent: true,
  },
  {
    source: '/docs/http/sys-unseal',
    destination: '/api-docs/system/unseal',
    permanent: true,
  },
  {
    source: '/docs/install/install',
    destination: '/docs/install',
    permanent: true,
  },
  {
    source: '/docs/secrets/custom',
    destination: '/docs/plugin',
    permanent: true,
  },
  {
    source: '/docs/secrets/generic',
    destination: '/docs/secrets/kv',
    permanent: true,
  },
  {
    source: '/docs/vault-enterprise/hsm/behavior',
    destination: '/docs/enterprise/hsm/behavior',
    permanent: true,
  },
  {
    source: '/docs/vault-enterprise/hsm/configuration',
    destination: '/docs/enterprise/hsm/configuration',
    permanent: true,
  },
  {
    source: '/docs/vault-enterprise/hsm',
    destination: '/docs/enterprise/hsm',
    permanent: true,
  },
  {
    source: '/docs/vault-enterprise/hsm/security',
    destination: '/docs/enterprise/hsm/security',
    permanent: true,
  },
  {
    source: '/docs/vault-enterprise/identity',
    destination: '/docs/enterprise/identity',
    permanent: true,
  },
  {
    source: '/docs/vault-enterprise',
    destination: '/docs/enterprise',
    permanent: true,
  },
  {
    source: '/docs/vault-enterprise/mfa',
    destination: '/docs/enterprise/mfa',
    permanent: true,
  },
  {
    source: '/docs/vault-enterprise/mfa/mfa-duo',
    destination: '/docs/enterprise/mfa/mfa-duo',
    permanent: true,
  },
  {
    source: '/docs/vault-enterprise/mfa/mfa-okta',
    destination: '/docs/enterprise/mfa/mfa-okta',
    permanent: true,
  },
  {
    source: '/docs/vault-enterprise/mfa/mfa-pingid',
    destination: '/docs/enterprise/mfa/mfa-pingid',
    permanent: true,
  },
  {
    source: '/docs/vault-enterprise/mfa/mfa-totp',
    destination: '/docs/enterprise/mfa/mfa-totp',
    permanent: true,
  },
  {
    source: '/docs/vault-enterprise/replication',
    destination: '/docs/enterprise/replication',
    permanent: true,
  },
  {
    source: '/docs/vault-enterprise/ui',
    destination: '/docs/configuration/ui',
    permanent: true,
  },
  {
    source: '/docs/secrets/cassandra',
    destination: '/docs/secrets/databases/cassandra',
    permanent: true,
  },
  {
    source: '/docs/secrets/mongodb',
    destination: '/docs/secrets/databases/mongodb',
    permanent: true,
  },
  {
    source: '/docs/secrets/mssql',
    destination: '/docs/secrets/databases/mssql',
    permanent: true,
  },
  {
    source: '/docs/secrets/mysql',
    destination: '/docs/secrets/databases/mysql-maria',
    permanent: true,
  },
  {
    source: '/docs/secrets/postgresql',
    destination: '/docs/secrets/databases/postgresql',
    permanent: true,
  },
  {
    source: '/guides/authentication',
    destination: '/guides/identity/authentication',
    permanent: true,
  },
  {
    source: '/guides/configuration/authentication',
    destination: '/guides/identity/authentication',
    permanent: true,
  },
  {
    source: '/guides/configuration/generate-root',
    destination: '/guides/operations/generate-root',
    permanent: true,
  },
  {
    source: '/guides/configuration/lease',
    destination: '/guides/identity/lease',
    permanent: true,
  },
  {
    source: '/guides/configuration/plugin-backends',
    destination: '/guides/operations/plugin-backends',
    permanent: true,
  },
  {
    source: '/guides/configuration/policies',
    destination: '/guides/identity/policies',
    permanent: true,
  },
  {
    source: '/guides/cubbyhole',
    destination: '/guides/secret-mgmt/cubbyhole',
    permanent: true,
  },
  {
    source: '/guides/dynamic-secret',
    destination: '/guides/secret-mgmt/dynamic-secret',
    permanent: true,
  },
  {
    source: '/guides/generate-root',
    destination: '/guides/operations/generate-root',
    permanent: true,
  },
  {
    source: '/guides/lease',
    destination: '/guides/identity/lease',
    permanent: true,
  },
  {
    source: '/guides/plugin-backends',
    destination: '/guides/operations/plugin-backends',
    permanent: true,
  },
  {
    source: '/guides/policies',
    destination: '/guides/identity/policies',
    permanent: true,
  },
  {
    source: '/guides/production',
    destination: '/guides/operations/production',
    permanent: true,
  },
  {
    source: '/guides/rekeying-and-rotating',
    destination: '/guides/operations/rekeying-and-rotating',
    permanent: true,
  },
  {
    source: '/guides/replication',
    destination: '/guides/operations/replication',
    permanent: true,
  },
  {
    source: '/guides/static-secrets',
    destination: '/guides/secret-mgmt/static-secrets',
    permanent: true,
  },
  {
    source: '/intro/getting-started/acl',
    destination: '/intro/getting-started/policies',
    permanent: true,
  },
  {
    source: '/intro/getting-started/secret-backends',
    destination: '/intro/getting-started/secrets-engines',
    permanent: true,
  },
  {
    source: '/guides/configuration/rekeying-and-rotating',
    destination: '/guides/operations/rekeying-and-rotating',
    permanent: true,
  },
  {
    source: '/docs/guides/upgrading/:path*',
    destination: '/docs/upgrading/:path*',
    permanent: true,
  },
  {
    source: '/guides/upgrading/:path*',
    destination: '/docs/upgrading/:path*',
    permanent: true,
  },
  {
    source: '/docs/install/upgrade-:path*',
    destination: '/docs/upgrading/upgrade-:path*',
    permanent: true,
  },
  {
    source: '/docs/install/upgrade',
    destination: '/docs/upgrading',
    permanent: true,
  },
  // Guides and Intro redirects to Learn
  {
    source: '/guides/getting-started',
    destination: 'https://learn.hashicorp.com/vault',
    permanent: true,
  },
  {
    source: '/guides/operations',
    destination: 'https://learn.hashicorp.com/collections/vault/operations',
    permanent: true,
  },
  {
    source: '/guides/operations/reference-architecture',
    destination:
      'https://learn.hashicorp.com/tutorials/vault/reference-architecture',
    permanent: true,
  },
  {
    source: '/guides/operations/deployment-guide',
    destination: 'https://learn.hashicorp.com/tutorials/vault/deployment-guide',
    permanent: true,
  },
  {
    source: '/guides/operations/vault-ha-consul',
    destination: 'https://learn.hashicorp.com/tutorials/vault/ha-with-consul',
    permanent: true,
  },
  {
    source: '/guides/operations/production',
    destination:
      'https://learn.hashicorp.com/tutorials/vault/production-hardening',
    permanent: true,
  },
  {
    source: '/guides/operations/generate-root',
    destination: 'https://learn.hashicorp.com/tutorials/vault/generate-root',
    permanent: true,
  },
  {
    source: '/guides/operations/rekeying-and-rotating',
    destination:
      'https://learn.hashicorp.com/tutorials/vault/rekeying-and-rotating',
    permanent: true,
  },
  {
    source: '/guides/operations/plugin-backends',
    destination: 'https://learn.hashicorp.com/tutorials/vault/plugin-backends',
    permanent: true,
  },
  {
    source: '/guides/operations/replication',
    destination:
      'https://learn.hashicorp.com/tutorials/vault/performance-replication',
    permanent: true,
  },
  {
    source: '/guides/operations/disaster-recovery',
    destination:
      'https://learn.hashicorp.com/tutorials/vault/disaster-recovery',
    permanent: true,
  },
  {
    source: '/guides/operations/mount-filter',
    destination: 'https://learn.hashicorp.com/tutorials/vault/paths-filter',
    permanent: true,
  },
  {
    source: '/guides/operations/performance-nodes',
    destination:
      'https://learn.hashicorp.com/tutorials/vault/performance-standbys',
    permanent: true,
  },
  {
    source: '/guides/operations/multi-tenant',
    destination: 'https://learn.hashicorp.com/tutorials/vault/namespaces',
    permanent: true,
  },
  {
    source: '/guides/operations/autounseal-aws-kms',
    destination:
      'https://learn.hashicorp.com/tutorials/vault/autounseal-aws-kms',
    permanent: true,
  },
  {
    source: '/guides/operations/seal-wrap',
    destination: 'https://learn.hashicorp.com/tutorials/vault/seal-wrap',
    permanent: true,
  },
  {
    source: '/guides/operations/monitoring',
    destination: 'https://learn.hashicorp.com/tutorials/vault/monitoring',
    permanent: true,
  },
  // Identity
  {
    source: '/guides/identity',
    destination: 'https://learn.hashicorp.com/collections/vault/operations',
    permanent: true,
  },
  {
    source: '/guides/identity/secure-intro',
    destination:
      'https://learn.hashicorp.com/tutorials/vault/secure-introduction',
    permanent: true,
  },
  {
    source: '/guides/identity/policies',
    destination: 'https://learn.hashicorp.com/tutorials/vault/policies',
    permanent: true,
  },
  {
    source: '/guides/identity/policy-templating',
    destination:
      'https://learn.hashicorp.com/tutorials/vault/policy-templating',
    permanent: true,
  },
  {
    source: '/guides/identity/authentication',
    destination: 'https://learn.hashicorp.com/tutorials/vault/approle',
    permanent: true,
  },
  {
    source: '/guides/identity/approle-trusted-entities',
    destination:
      'https://learn.hashicorp.com/tutorials/vault/approle-trusted-entities',
    permanent: true,
  },
  {
    source: '/guides/identity/lease',
    destination: 'https://learn.hashicorp.com/tutorials/vault/tokens',
    permanent: true,
  },
  {
    source: '/guides/identity/identity',
    destination: 'https://learn.hashicorp.com/tutorials/vault/identity',
    permanent: true,
  },
  {
    source: '/guides/identity/sentinel',
    destination: 'https://learn.hashicorp.com/tutorials/vault/sentinel',
    permanent: true,
  },
  {
    source: '/guides/identity/control-groups',
    destination: 'https://learn.hashicorp.com/tutorials/vault/control-groups',
    permanent: true,
  },
  // Secrets management
  {
    source: '/guides/secret-mgmt/index.html',
    destination:
      'https://learn.hashicorp.com/collections/vault/secrets-management',
    permanent: true,
  },
  {
    source: '/guides/secret-mgmt/static-secrets',
    destination:
      'https://learn.hashicorp.com/vault/secrets-management/sm-static-secrets',
    permanent: true,
  },
  {
    source: '/guides/secret-mgmt/versioned-kv',
    destination:
      'https://learn.hashicorp.com/vault/secrets-management/sm-versioned-kv',
    permanent: true,
  },
  {
    source: '/guides/secret-mgmt/dynamic-secrets',
    destination:
      'https://learn.hashicorp.com/vault/secrets-management/sm-dynamic-secrets',
    permanent: true,
  },
  {
    source: '/guides/secret-mgmt/db-root-rotation',
    destination:
      'https://learn.hashicorp.com/vault/secrets-management/db-root-rotation',
    permanent: true,
  },
  {
    source: '/guides/secret-mgmt/cubbyhole',
    destination:
      'https://learn.hashicorp.com/vault/secrets-management/sm-cubbyhole',
    permanent: true,
  },
  {
    source: '/guides/secret-mgmt/ssh-otp',
    destination:
      'https://learn.hashicorp.com/vault/secrets-management/sm-ssh-otp',
    permanent: true,
  },
  {
    source: '/guides/secret-mgmt/pki-engine',
    destination:
      'https://learn.hashicorp.com/vault/secrets-management/sm-pki-engine',
    permanent: true,
  },
  {
    source: '/guides/secret-mgmt/app-integration',
    destination:
      'https://learn.hashicorp.com/vault/developer/sm-app-integration',
    permanent: true,
  },
  // Encryption
  {
    source: '/guides/encryption',
    destination:
      'https://learn.hashicorp.com/collections/vault/encryption-as-a-service',
    permanent: true,
  },
  {
    source: '/guides/encryption/transit',
    destination:
      'https://learn.hashicorp.com/vault/encryption-as-a-service/eaas-transit',
    permanent: true,
  },
  {
    source: '/guides/encryption/spring-demo',
    destination:
      'https://learn.hashicorp.com/vault/encryption-as-a-service/eaas-spring-demo',
    permanent: true,
  },
  {
    source: '/guides/encryption/transit-rewrap',
    destination:
      'https://learn.hashicorp.com/vault/encryption-as-a-service/eaas-transit-rewrap',
    permanent: true,
  },
  // Intro getting started content -> Learn
  {
    source: '/intro',
    destination:
      'https://learn.hashicorp.com/collections/vault/getting-started',
    permanent: true,
  },
  {
    source: '/intro/getting-started',
    destination: 'https://learn.hashicorp.com/vault/getting-started/install',
    permanent: true,
  },
  {
    source: '/intro/getting-started/install',
    destination:
      'https://learn.hashicorp.com/tutorials/vault/getting-started-install',
    permanent: true,
  },
  {
    source: '/intro/getting-started/dev-server',
    destination: 'https://learn.hashicorp.com/vault/getting-started/dev-server',
    permanent: true,
  },
  {
    source: '/intro/getting-started/first-secret',
    destination:
      'https://learn.hashicorp.com/vault/getting-started/first-secret',
    permanent: true,
  },
  {
    source: '/intro/getting-started/secrets-engines',
    destination:
      'https://learn.hashicorp.com/vault/getting-started/secrets-engines',
    permanent: true,
  },
  {
    source: '/intro/getting-started/dynamic-secrets',
    destination:
      'https://learn.hashicorp.com/vault/getting-started/dynamic-secrets',
    permanent: true,
  },
  {
    source: '/intro/getting-started/help',
    destination: 'https://learn.hashicorp.com/vault/getting-started/help',
    permanent: true,
  },
  {
    source: '/intro/getting-started/authentication',
    destination:
      'https://learn.hashicorp.com/vault/getting-started/authentication',
    permanent: true,
  },
  {
    source: '/intro/getting-started/policies',
    destination: 'https://learn.hashicorp.com/vault/getting-started/policies',
    permanent: true,
  },
  {
    source: '/intro/getting-started/deploy',
    destination: 'https://learn.hashicorp.com/vault/getting-started/deploy',
    permanent: true,
  },
  {
    source: '/intro/getting-started/apis',
    destination: 'https://learn.hashicorp.com/vault/getting-started/apis',
    permanent: true,
  },
  {
    source: '/intro/getting-started/next-steps',
    destination: 'https://learn.hashicorp.com/vault/getting-started/next-steps',
    permanent: true,
  },
  // Rearranged out of `guides` but still on `.io`
  {
    source: '/guides/partnerships',
    destination: '/docs/partnerships',
    permanent: true,
  },
  {
    source: '/intro/use-cases',
    destination: '/docs/use-cases',
    permanent: true,
  },
  { source: '/intro/vs', destination: '/docs/vs', permanent: true },
  { source: '/intro/vs/:path*', destination: '/docs/vs', permanent: true },
  {
    source: '/intro/what-is-vault',
    destination: '/docs/what-is-vault',
    permanent: true,
  },
  // disallow '.html' or '/index.html' in favor of cleaner, simpler paths
  { source: '/:path*/index', destination: '/:path*', permanent: true },
  { source: '/:path*.html', destination: '/:path*', permanent: true },
]

{'fraction_non_alphanumeric': 0.17006819968055167, 'fraction_numerical': 0.0002788834520700758, 'mean_word_length': 2.9111551809618246, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 6, 'https://': 108, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6508068', 'n_tokens_mistral': 13717, 'n_tokens_neox': 13953, 'n_words': 1834}