This repository has been archived by the owner on Jul 5, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 370
/
redirects.next.js
230 lines (223 loc) · 10 KB
/
redirects.next.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
module.exports = (async () => {
const tfProviderNamespaces = {
aci: 'CiscoDevNet/aci',
acme: 'vancluever/acme',
ado: 'microsoft/azuredevops',
akamai: 'akamai/akamai',
alicloud: 'aliyun/alicloud',
archive: 'hashicorp/archive',
auth0: 'alexkappa/auth0',
aviatrix: 'AviatrixSystems/aviatrix',
aws: 'hashicorp/aws',
azuread: 'hashicorp/azuread',
azuredevops: 'microsoft/azuredevops',
azurerm: 'hashicorp/azurerm',
azurestack: 'hashicorp/azurestack',
baiducloud: 'baidubce/baiducloud',
bigip: 'F5Networks/bigip',
brightbox: 'brightbox/brightbox',
checkpoint: 'CheckPointSW/checkpoint',
circonus: 'circonus-labs/circonus',
ciscoasa: 'hashicorp/ciscoasa',
cloudamqp: 'cloudamqp/cloudamqp',
cloudflare: 'cloudflare/cloudflare',
cloudinit: 'hashicorp/cloudinit',
cloudscale: 'cloudscale-ch/cloudscale',
cobbler: 'cobber/cobbler',
constellix: 'Constellix/constellix',
consul: 'hashicorp/consul',
datadog: 'DataDog/datadog',
digitalocean: 'digitalocean/digitalocean',
dme: 'DNSMadeEasy/dme',
dns: 'hashicorp/dns',
dnsimple: 'dnsimple/dnsimple',
do: 'digitalocean/digitalocean',
docker: 'kreuzwerker/docker',
dome9: 'dome9/dome9',
ecl: 'nttcom/ecl',
exoscale: 'exoscale/exoscale',
external: 'hashicorp/external',
fastly: 'fastly/fastly',
flexibleengine: 'FlexibleEngineCloud/flexibleengine',
fortios: 'fortinetdev/fortios',
github: 'integrations/github',
gitlab: 'gitlabhq/gitlab',
google: 'hashicorp/google',
grafana: 'grafana/grafana',
gridscale: 'gridscale/gridscale',
hcloud: 'hetznercloud/hcloud',
helm: 'hashicorp/helm',
heroku: 'heroku/heroku',
http: 'hashicorp/http',
huaweicloud: 'huaweicloud/huaweicloud',
huaweicloudstack: 'huaweicloud/huaweicloudstack',
icinga2: 'Icinga/icinga2',
incapsula: 'imperva/incapsula',
ksyun: 'kingsoftcloud/ksyun',
kubernetes: 'hashicorp/kubernetes',
lacework: 'lacework/lacework',
launchdarkly: 'launchdarkly/launchdarkly',
linode: 'linode/linode',
local: 'hashicorp/local',
logicmonitor: 'logicmonitor/logicmonitor',
mailgun: 'wgebis/mailgun',
mongodbatlas: 'mongodb/mongodbatlas',
mso: 'CiscoDevNet/mso',
ncloud: 'NaverCloudPlatform/ncloud',
newrelic: 'newrelic/newrelic',
nomad: 'hashicorp/nomad',
ns1: 'ns1-terraform/ns1',
nsxt: 'vmware/nsxt',
null: 'hashicorp/null',
nutanix: 'nutanix/nutanix',
oci: 'hashicorp/oci',
okta: 'oktadeveloper/okta',
oktaasa: 'oktadeveloper/oktaasa',
opc: 'hashicorp/opc',
opennebula: 'OpenNebula/opennebula',
openstack: 'terraform-provider-openstack/openstack',
opentelekomcloud: 'opentelekomcloud/opentelekomcloud',
opsgenie: 'opsgenie/opsgenie',
oraclepaas: 'hashicorp/oraclepaas',
ovh: 'ovh/ovh',
packet: 'packethost/packet',
pagerduty: 'PagerDuty/pagerduty',
panos: 'PaloAltoNetworks/panos',
postgresql: 'cyrilgdn/postgresql',
powerdns: 'pan-net/powerdns',
prismacloud: 'PaloAltoNetworks/prismacloud',
profitbricks: 'ionos-cloud/profitbricks',
rabbitmq: 'cyrilgdn/rabbitmq',
rancher2: 'rancher/rancher2',
random: 'hashicorp/random',
scaleway: 'scaleway/scaleway',
selectel: 'selectel/selectel',
signalfx: 'splunk-terraform/signalfx',
skytap: 'skytap/skytap',
spotinst: 'spotinst/spotinst',
stackpath: 'stackpath/stackpath',
statuscake: 'StatusCakeDev/statuscake',
sumologic: 'SumoLogic/sumologic',
template: 'hashicorp/template',
tencentcloud: 'tencentcloudstack/tencentcloud',
tfe: 'hashicorp/tfe',
time: 'hashicorp/time',
tls: 'hashicorp/tls',
triton: 'joyent/triton',
turbot: 'turbot/turbot',
ucloud: 'ucloud/ucloud',
vault: 'hashicorp/vault',
vcd: 'vmware/vcd',
venafi: 'Venafi/venafi',
vmc: 'vmware/vmc',
vra7: 'vmware/vra7',
vsphere: 'hashicorp/vsphere',
vthunder: 'a10networks/thunder',
vultr: 'vultr/vultr',
wavefront: 'vmware/wavefront',
yandex: 'yandex-cloud/yandex',
}
const tfRegistryDocsType = {
d: 'data-sources',
guides: 'guides',
r: 'resources',
}
const registryTopLevelRedirects = Object.entries(tfProviderNamespaces).map(
([namespace, repo]) => {
return {
source: `/docs/providers/${namespace}(/index.html)?`,
destination: `https://registry.terraform.io/providers/${repo}/latest/docs`,
permanent: true,
}
}
)
const registryDocsRedirects = []
Object.entries(tfProviderNamespaces).forEach(([namespace, repo]) => {
for (let [docsTypeShort, docsTypeFull] of Object.entries(
tfRegistryDocsType
)) {
registryDocsRedirects.push({
source: `/docs/providers/${namespace}/${docsTypeShort}/:path*`,
destination: `https://registry.terraform.io/providers/${repo}/latest/docs/${docsTypeFull}/:path*`,
permanent: true,
})
}
})
const miscRedirectsMap = {
'/cloud': 'https://cloud.hashicorp.com/products/terraform',
'/cloud/how-it-works': 'https://cloud.hashicorp.com/products/terraform',
'/community.html': '/community',
'/downloads.html': '/downloads',
'/guides/core-workflow.html': '/intro/core-workflow',
'/guides/index.html': '/guides',
'/guides/terraform-integration-program.html': '/docs/partnerships',
'/guides/terraform-provider-development-program.html': '/docs/partnerships',
'/guides/writing-custom-terraform-providers.html':
'/docs/extend/writing-custom-providers.html',
'/index.html': '/',
'/intro/index.html': '/intro',
'/intro/use-cases.html': '/intro/use-cases',
'/intro/vs/boto.html': '/intro/vs/boto',
'/intro/vs/chef-puppet.html': '/intro/vs/chef-puppet',
'/intro/vs/cloudformation.html': '/intro/vs/cloudformation',
'/intro/vs/custom.html': '/intro/vs/custom',
'/intro/vs/index.html': '/intro/vs',
'/plugin/sdkv2/sdkv2-intro': '/plugin/sdkv2',
'/security.html': '/security',
'/upgrade-guides': '/language/upgrade-guides',
'/upgrade-guides/0-10.html': '/language/upgrade-guides/0-10',
'/upgrade-guides/0-11.html': '/language/upgrade-guides/0-11',
'/upgrade-guides/0-12.html': '/language/upgrade-guides/0-12',
'/upgrade-guides/0-13.html': '/language/upgrade-guides/0-13',
'/upgrade-guides/0-14.html': '/language/upgrade-guides/0-14',
'/upgrade-guides/0-15.html': '/language/upgrade-guides/0-15',
'/upgrade-guides/0-7.html': '/language/upgrade-guides/0-7',
'/upgrade-guides/0-8.html': '/language/upgrade-guides/0-8',
'/upgrade-guides/0-9.html': '/language/upgrade-guides/0-9',
'/upgrade-guides/1-0.html': '/language/upgrade-guides/1-0',
'/upgrade-guides/index.html': '/language/upgrade-guides',
'/language/resources/provisioners': '/language/resources/provisioners/syntax',
'/enterprise/before-installing/cluster-architecture': '/enterprise/install/automated/active-active',
'/enterprise/install/cluster-aws': '/enterprise/install/automated/active-active',
'/enterprise/install/cluster-azure': '/enterprise/install/automated/active-active',
'/enterprise/install/cluster-custom': '/enterprise/install/automated/active-active',
'/enterprise/install/cluster-gcp': '/enterprise/install/automated/active-active',
'/enterprise/admin/infrastructure/active-active': '/enterprise/admin/infrastructure/admin-cli',
'/enterprise/release': '/enterprise/releases',
'/cloud-docs/registry/publish': '/cloud-docs/registry/publish-modules',
'/cloud-docs/api-docs/providers': '/cloud-docs/api-docs/private-registry/providers',
'/cloud-docs/api-docs/modules': '/cloud-docs/api-docs/private-registry/modules',
'/enterprise/install': '/enterprise/install/pre-install-checklist',
'/enterprise/before-installing': '/enterprise/install/pre-install-checklist',
'/enterprise/before-installing/reference-architecture': '/enterprise/reference-architecture',
'/enterprise/before-installing/reference-architecture/:part': '/enterprise/reference-architecture/:part',
'/enterprise/before-installing/os-specific/rhel-requirements': '/enterprise/requirements/os-specific/rhel-requirements',
'/enterprise/before-installing/os-specific/centos-requirements': '/enterprise/requirements/os-specific/centos-requirements',
'/enterprise/before-installing/network-requirements': '/enterprise/requirements/network',
'/enterprise/user-management/saml': '/enterprise/saml/configuration',
'/enterprise/user-management/saml/:path*': '/enterprise/saml/:path*',
'/enterprise/before-installing/data-storage-requirements/postgres-requirements': '/enterprise/requirements/data-storage/postgres-requirements',
'/enterprise/before-installing/data-storage-requirements/disk-requirements': '/enterprise/requirements/data-storage/operational-mode-requirements',
'/enterprise/before-installing/data-storage-requirements/minio-setup-guide': '/enterprise/requirements/data-storage/mineo-setup-guide',
'/enterprise/before-installing/data-storage-requirements/vault': '/enterprise/requirements/data-storage/vault',
'/cloud-docs/users-teams-organizations/index': '/cloud-docs/users-teams-organizations/users',
'/cloud-docs/guides/recommended-practices': '/cloud-docs/recommended-practices',
'/cloud-docs/guides/recommended-practices/:path*': '/cloud-docs/recommended-practices/:path*',
'/cloud-docs/paid': '/cloud-docs/overview',
'/cloud-docs/run': '/cloud-docs/run/remote-operations',
'/language/settings/backends': '/language/settings/backends/configuration',
'/cloud-docs/api-docs/run-tasks': '/cloud-docs/api-docs/run-tasks/run-tasks',
'/cloud-docs/api-docs/run-tasks-integration': '/cloud-docs/api-docs/run-tasks/run-tasks-integration',
'/language/provider-checksum-verification': '/language/files/dependency-lock#checksum-verification' // Used by the Terraform CLI to short-link to documentation.
}
const miscRedirects = Object.entries(miscRedirectsMap).map(
([source, destination]) => {
return { source, destination, permanent: true }
}
)
return [
...registryTopLevelRedirects,
...registryDocsRedirects,
...miscRedirects,
]
})()