-
Notifications
You must be signed in to change notification settings - Fork 350
/
builtin.go
227 lines (218 loc) · 8.03 KB
/
builtin.go
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
/*
Package builtin provides a small, generic set of filters.
*/
package builtin
import (
"github.com/zalando/skipper/filters"
"github.com/zalando/skipper/filters/accesslog"
"github.com/zalando/skipper/filters/auth"
"github.com/zalando/skipper/filters/circuit"
"github.com/zalando/skipper/filters/consistenthash"
"github.com/zalando/skipper/filters/cookie"
"github.com/zalando/skipper/filters/cors"
"github.com/zalando/skipper/filters/diag"
"github.com/zalando/skipper/filters/fadein"
"github.com/zalando/skipper/filters/flowid"
logfilter "github.com/zalando/skipper/filters/log"
"github.com/zalando/skipper/filters/rfc"
"github.com/zalando/skipper/filters/scheduler"
"github.com/zalando/skipper/filters/sed"
"github.com/zalando/skipper/filters/tee"
"github.com/zalando/skipper/filters/tracing"
"github.com/zalando/skipper/filters/xforward"
"github.com/zalando/skipper/script"
)
const (
// Deprecated: use setRequestHeader or appendRequestHeader
RequestHeaderName = "requestHeader"
// Deprecated: use setResponseHeader or appendResponseHeader
ResponseHeaderName = "responseHeader"
// Deprecated: use redirectTo
RedirectName = "redirect"
// Deprecated, use filters.SetRequestHeaderName instead
SetRequestHeaderName = filters.SetRequestHeaderName
// Deprecated, use filters.SetResponseHeaderName instead
SetResponseHeaderName = filters.SetResponseHeaderName
// Deprecated, use filters.AppendRequestHeaderName instead
AppendRequestHeaderName = filters.AppendRequestHeaderName
// Deprecated, use filters.AppendResponseHeaderName instead
AppendResponseHeaderName = filters.AppendResponseHeaderName
// Deprecated, use filters.DropRequestHeaderName instead
DropRequestHeaderName = filters.DropRequestHeaderName
// Deprecated, use filters.DropResponseHeaderName instead
DropResponseHeaderName = filters.DropResponseHeaderName
// Deprecated, use filters.SetContextRequestHeaderName instead
SetContextRequestHeaderName = filters.SetContextRequestHeaderName
// Deprecated, use filters.AppendContextRequestHeaderName instead
AppendContextRequestHeaderName = filters.AppendContextRequestHeaderName
// Deprecated, use filters.SetContextResponseHeaderName instead
SetContextResponseHeaderName = filters.SetContextResponseHeaderName
// Deprecated, use filters.AppendContextResponseHeaderName instead
AppendContextResponseHeaderName = filters.AppendContextResponseHeaderName
// Deprecated, use filters.CopyRequestHeaderName instead
CopyRequestHeaderName = filters.CopyRequestHeaderName
// Deprecated, use filters.CopyResponseHeaderName instead
CopyResponseHeaderName = filters.CopyResponseHeaderName
// Deprecated, use filters.SetDynamicBackendHostFromHeader instead
SetDynamicBackendHostFromHeader = filters.SetDynamicBackendHostFromHeader
// Deprecated, use filters.SetDynamicBackendSchemeFromHeader instead
SetDynamicBackendSchemeFromHeader = filters.SetDynamicBackendSchemeFromHeader
// Deprecated, use filters.SetDynamicBackendUrlFromHeader instead
SetDynamicBackendUrlFromHeader = filters.SetDynamicBackendUrlFromHeader
// Deprecated, use filters.SetDynamicBackendHost instead
SetDynamicBackendHost = filters.SetDynamicBackendHost
// Deprecated, use filters.SetDynamicBackendScheme instead
SetDynamicBackendScheme = filters.SetDynamicBackendScheme
// Deprecated, use filters.SetDynamicBackendUrl instead
SetDynamicBackendUrl = filters.SetDynamicBackendUrl
// Deprecated, use filters.HealthCheckName instead
HealthCheckName = filters.HealthCheckName
// Deprecated, use filters.ModPathName instead
ModPathName = filters.ModPathName
// Deprecated, use filters.SetPathName instead
SetPathName = filters.SetPathName
// Deprecated, use filters.ModRequestHeaderName instead
ModRequestHeaderName = filters.ModRequestHeaderName
// Deprecated, use filters.RedirectToName instead
RedirectToName = filters.RedirectToName
// Deprecated, use filters.RedirectToLowerName instead
RedirectToLowerName = filters.RedirectToLowerName
// Deprecated, use filters.StaticName instead
StaticName = filters.StaticName
// Deprecated, use filters.StripQueryName instead
StripQueryName = filters.StripQueryName
// Deprecated, use filters.PreserveHostName instead
PreserveHostName = filters.PreserveHostName
// Deprecated, use filters.SetFastCgiFilenameName instead
SetFastCgiFilenameName = filters.SetFastCgiFilenameName
// Deprecated, use filters.StatusName instead
StatusName = filters.StatusName
// Deprecated, use filters.CompressName instead
CompressName = filters.CompressName
// Deprecated, use filters.SetQueryName instead
SetQueryName = filters.SetQueryName
// Deprecated, use filters.DropQueryName instead
DropQueryName = filters.DropQueryName
// Deprecated, use filters.InlineContentName instead
InlineContentName = filters.InlineContentName
// Deprecated, use filters.InlineContentIfStatusName instead
InlineContentIfStatusName = filters.InlineContentIfStatusName
// Deprecated, use filters.HeaderToQueryName instead
HeaderToQueryName = filters.HeaderToQueryName
// Deprecated, use filters.QueryToHeaderName instead
QueryToHeaderName = filters.QueryToHeaderName
// Deprecated, use filters.BackendTimeoutName instead
BackendTimeoutName = filters.BackendTimeoutName
)
// Returns a Registry object initialized with the default set of filter
// specifications found in the filters package. (including the builtin
// and the flowid subdirectories.)
func MakeRegistry() filters.Registry {
r := make(filters.Registry)
for _, s := range []filters.Spec{
NewBackendIsProxy(),
NewRequestHeader(),
NewSetRequestHeader(),
NewAppendRequestHeader(),
NewDropRequestHeader(),
NewResponseHeader(),
NewSetResponseHeader(),
NewAppendResponseHeader(),
NewDropResponseHeader(),
NewSetContextRequestHeader(),
NewAppendContextRequestHeader(),
NewSetContextResponseHeader(),
NewAppendContextResponseHeader(),
NewCopyRequestHeader(),
NewCopyResponseHeader(),
NewCopyRequestHeaderDeprecated(),
NewCopyResponseHeaderDeprecated(),
NewModPath(),
NewSetPath(),
NewModRequestHeader(),
NewModResponseHeader(),
NewDropQuery(),
NewSetQuery(),
NewHealthCheck(),
NewStatic(),
NewRedirect(),
NewRedirectTo(),
NewRedirectLower(),
NewStripQuery(),
NewInlineContent(),
NewInlineContentIfStatus(),
flowid.New(),
xforward.New(),
xforward.NewFirst(),
PreserveHost(),
NewSetFastCgiFilename(),
NewStatus(),
NewCompress(),
NewDecompress(),
NewHeaderToQuery(),
NewQueryToHeader(),
NewBackendTimeout(),
NewSetDynamicBackendHostFromHeader(),
NewSetDynamicBackendSchemeFromHeader(),
NewSetDynamicBackendUrlFromHeader(),
NewSetDynamicBackendHost(),
NewSetDynamicBackendScheme(),
NewSetDynamicBackendUrl(),
NewOriginMarkerSpec(),
diag.NewRandom(),
diag.NewRepeat(),
diag.NewLatency(),
diag.NewBandwidth(),
diag.NewChunks(),
diag.NewBackendLatency(),
diag.NewBackendBandwidth(),
diag.NewBackendChunks(),
diag.NewAbsorb(),
diag.NewAbsorbSilent(),
diag.NewLogHeader(),
diag.NewUniformRequestLatency(),
diag.NewNormalRequestLatency(),
diag.NewUniformResponseLatency(),
diag.NewNormalResponseLatency(),
tee.NewTee(),
tee.NewTeeDeprecated(),
tee.NewTeeNoFollow(),
tee.NewTeeLoopback(),
sed.New(),
sed.NewDelimited(),
sed.NewRequest(),
sed.NewDelimitedRequest(),
auth.NewBasicAuth(),
cookie.NewRequestCookie(),
cookie.NewResponseCookie(),
cookie.NewJSCookie(),
circuit.NewConsecutiveBreaker(),
circuit.NewRateBreaker(),
circuit.NewDisableBreaker(),
script.NewLuaScript(),
cors.NewOrigin(),
logfilter.NewUnverifiedAuditLog(),
tracing.NewSpanName(),
tracing.NewBaggageToTagFilter(),
tracing.NewTag(),
tracing.NewStateBagToTag(),
//lint:ignore SA1019 due to backward compatibility
accesslog.NewAccessLogDisabled(),
accesslog.NewDisableAccessLog(),
accesslog.NewEnableAccessLog(),
auth.NewForwardToken(),
auth.NewForwardTokenField(),
scheduler.NewFifo(),
scheduler.NewLIFO(),
scheduler.NewLIFOGroup(),
rfc.NewPath(),
rfc.NewHost(),
fadein.NewFadeIn(),
fadein.NewEndpointCreated(),
consistenthash.NewConsistentHashKey(),
consistenthash.NewConsistentHashBalanceFactor(),
} {
r.Register(s)
}
return r
}