Skip to content

Commit b25e13a

Browse files
authored
feat: CORS (#296)
1 parent 9fb2159 commit b25e13a

22 files changed

Lines changed: 327 additions & 139 deletions

File tree

.dockerignore

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,33 @@
1-
# Ignore all
2-
*
1+
# Env files
2+
**/*.env
33

4-
# env file
5-
*.env
4+
# Editor/IDE
5+
# .idea/
6+
.vscode/
67

78
# Git folders
89
.git*
9-
.github
10+
!.github
11+
12+
# Docusaurus
13+
.docusaurus
14+
node_modules
1015

1116
# Dev folders
1217
.dev
18+
dev-env.sh
1319
*.local.*
1420

15-
# Ignore yml files
16-
*.yaml
17-
*.yml
21+
# Editor config
22+
.editorconfig
1823

1924
# Markdown files
20-
*.md
25+
**/*.md
26+
27+
!LICENSE
2128

2229
# Include data/
2330
!data/*
2431

25-
# Ignore source files
26-
*.go
27-
go.mod
28-
go.sum
29-
30-
# Include build
31-
!app
32-
!dist/*
32+
# Include source files
33+
!*.go

.github/workflows/docker-image-dev.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,10 @@ on:
2121
- beta
2222
- alpha
2323
- dev
24+
- feat
2425

2526
env:
26-
TYPES: "rc,beta,alpha,dev"
27+
TYPES: "rc,beta,alpha,dev,feat"
2728

2829
TYPE: ${{ inputs.type }}
2930
BASE_TAG: ${{ inputs.base-tag }}
@@ -113,7 +114,7 @@ jobs:
113114
echo "COUNT=$COUNT" >> "$GITHUB_ENV"
114115
115116
- name: Login to Registry
116-
uses: docker/login-action@v3
117+
uses: docker/login-action@v4
117118
with:
118119
registry: ghcr.io
119120
username: ${{ github.repository_owner }}
@@ -181,7 +182,7 @@ jobs:
181182
182183
update:
183184
needs: resolve-tag
184-
uses: codeshelldev/gh-actions/.github/workflows/docker-image-go.yml@main
185+
uses: codeshelldev/gh-actions/.github/workflows/docker-image.yml@main
185186
name: Development Image
186187
with:
187188
registry: ghcr.io

.github/workflows/docker-image.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ jobs:
3939
update:
4040
needs: check
4141
if: needs.check.outputs.continue == 'true'
42-
uses: codeshelldev/gh-actions/.github/workflows/docker-image-go.yml@main
42+
uses: codeshelldev/gh-actions/.github/workflows/docker-image.yml@main
4343
name: Stable Image
4444
with:
4545
registry: ghcr.io

.gitignore

Lines changed: 2 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,5 @@
1-
# Binaries for programs and plugins
2-
*.exe
3-
*.exe~
4-
*.dll
5-
*.so
6-
*.dylib
7-
8-
# Test binary, built with `go test -c`
9-
*.test
10-
11-
# Code coverage profiles and other test artifacts
12-
*.out
13-
coverage.*
14-
*.coverprofile
15-
profile.cov
16-
17-
# Dependency directories (remove the comment below to include it)
18-
# vendor/
19-
20-
# Go workspace file
21-
go.work
22-
go.work.sum
23-
24-
# env file
25-
*.env
1+
# Env files
2+
**/*.env
263

274
# Editor/IDE
285
# .idea/

Dockerfile

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,26 @@
1+
FROM --platform=${BUILDPLATFORM:-linux/amd64} golang:1.26-alpine AS builder
2+
3+
ARG TARGETOS
4+
ARG TARGETARCH
5+
6+
WORKDIR /app
7+
8+
COPY go.mod go.sum ./
9+
RUN go mod download
10+
11+
COPY . .
12+
13+
RUN GOOS=${TARGETOS} GOARCH=${TARGETARCH} \
14+
go build -ldflags="-s -w" -o /app/app .
15+
116
FROM alpine:3.22
17+
218
RUN apk --no-cache add ca-certificates
319

420
ARG IMAGE_TAG
521
ENV IMAGE_TAG=$IMAGE_TAG
622
LABEL org.opencontainers.image.version=$IMAGE_TAG
723

8-
ENV SERVICE__PORT=8880
9-
1024
ENV DEFAULTS_PATH=/app/data/defaults.yml
1125
ENV FAVICON_PATH=/app/data/favicon.ico
1226

@@ -15,19 +29,12 @@ ENV TOKENS_DIR=/config/tokens
1529

1630
ENV DB_PATH=/db/db.sqlite3
1731

18-
ENV CGO_ENABLED=1
19-
2032
ENV REDACT_TOKENS=true
2133

22-
ARG TARGETOS
23-
ARG TARGETARCH
24-
2534
WORKDIR /app
2635

27-
COPY . .
28-
29-
COPY dist/${TARGETOS}/${TARGETARCH}/app .
36+
COPY --from=builder /app/app .
3037

31-
RUN rm dist/ -r
38+
COPY data/ /app/data/
3239

3340
CMD ["./app"]

data/defaults.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,3 +59,8 @@ settings:
5959
matchType: prefix
6060
- pattern: /v1/contacts
6161
matchType: prefix
62+
63+
cors:
64+
methods: [GET, POST, PUT, PATCH, DELETE, OPTIONS]
65+
headers:
66+
["Content-Type", "Authorization", "Accept", "Accept-Language", "Origin"]

dev-env.sh

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,6 @@ export CONFIG_PATH=$DIR/.dev/config.yml
4343
export TOKENS_DIR=$DIR/.dev/tokens
4444
export DB_PATH=$DIR/.dev/db/db.sqlite3
4545

46-
export CGO_ENABLED=1
47-
4846
export API_URL=http://127.0.0.1:8881
4947

5048
export LOG_LEVEL=dev

go.mod

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module github.com/codeshelldev/secured-signal-api
22

3-
go 1.26.0
3+
go 1.26.1
44

55
require (
66
github.com/codeshelldev/gotl/pkg/configutils v0.0.22
@@ -20,6 +20,17 @@ require (
2020
github.com/go-viper/mapstructure/v2 v2.5.0
2121
github.com/knadh/koanf/parsers/yaml v1.1.0
2222
golang.org/x/time v0.14.0
23+
modernc.org/sqlite v1.47.0
24+
)
25+
26+
require (
27+
github.com/dustin/go-humanize v1.0.1 // indirect
28+
github.com/mattn/go-isatty v0.0.20 // indirect
29+
github.com/ncruces/go-strftime v1.0.0 // indirect
30+
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
31+
modernc.org/libc v1.70.0 // indirect
32+
modernc.org/mathutil v1.7.1 // indirect
33+
modernc.org/memory v1.11.0 // indirect
2334
)
2435

2536
require (
@@ -32,11 +43,10 @@ require (
3243
github.com/knadh/koanf/providers/file v1.2.1 // indirect
3344
github.com/knadh/koanf/v2 v2.3.3 // indirect
3445
github.com/mattn/go-runewidth v0.0.20 // indirect
35-
github.com/mattn/go-sqlite3 v1.14.34
3646
github.com/mitchellh/copystructure v1.2.0 // indirect
3747
github.com/mitchellh/reflectwalk v1.0.2 // indirect
3848
go.uber.org/multierr v1.11.0 // indirect
3949
go.uber.org/zap v1.27.1 // indirect
4050
go.yaml.in/yaml/v3 v3.0.4 // indirect
41-
golang.org/x/sys v0.41.0 // indirect
51+
golang.org/x/sys v0.42.0 // indirect
4252
)

go.sum

Lines changed: 49 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,18 @@ github.com/codeshelldev/gotl/pkg/templating v0.0.16 h1:0dl/NEApCtlm4kyEscQPknx4D
2424
github.com/codeshelldev/gotl/pkg/templating v0.0.16/go.mod h1:MHM4ouEsLNKXRYO+fS9qqpS1SFlL4Z6Q/0kxtS+auLk=
2525
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
2626
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
27+
github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
28+
github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
2729
github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k=
2830
github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0=
2931
github.com/go-viper/mapstructure/v2 v2.5.0 h1:vM5IJoUAy3d7zRSVtIwQgBj7BiWtMPfmPEgAXnvj1Ro=
3032
github.com/go-viper/mapstructure/v2 v2.5.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM=
33+
github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e h1:ijClszYn+mADRFY17kjQEVQ1XRhq2/JR1M3sGqeJoxs=
34+
github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e/go.mod h1:boTsfXsheKC2y+lKOCMpSfarhxDeIzfZG1jqGcPl3cA=
3135
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
3236
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
37+
github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k=
38+
github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM=
3339
github.com/knadh/koanf/maps v0.1.2 h1:RBfmAW5CnZT+PJ1CVc1QSJKf4Xu9kxfQgYVQSu8hpbo=
3440
github.com/knadh/koanf/maps v0.1.2/go.mod h1:npD/QZY3V6ghQDdcQzl1W4ICNVTkohC8E73eI2xW4yI=
3541
github.com/knadh/koanf/parsers/yaml v1.1.0 h1:3ltfm9ljprAHt4jxgeYLlFPmUaunuCgu1yILuTXRdM4=
@@ -46,16 +52,20 @@ github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI=
4652
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
4753
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
4854
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
55+
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
56+
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
4957
github.com/mattn/go-runewidth v0.0.20 h1:WcT52H91ZUAwy8+HUkdM3THM6gXqXuLJi9O3rjcQQaQ=
5058
github.com/mattn/go-runewidth v0.0.20/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs=
51-
github.com/mattn/go-sqlite3 v1.14.34 h1:3NtcvcUnFBPsuRcno8pUtupspG/GM+9nZ88zgJcp6Zk=
52-
github.com/mattn/go-sqlite3 v1.14.34/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=
5359
github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw=
5460
github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s=
5561
github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ=
5662
github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=
63+
github.com/ncruces/go-strftime v1.0.0 h1:HMFp8mLCTPp341M/ZnA4qaf7ZlsbTc+miZjCLOFAw7w=
64+
github.com/ncruces/go-strftime v1.0.0/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls=
5765
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
5866
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
67+
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE=
68+
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
5969
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
6070
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
6171
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
@@ -66,12 +76,47 @@ go.uber.org/zap v1.27.1 h1:08RqriUEv8+ArZRYSTXy1LeBScaMpVSTBhCeaZYfMYc=
6676
go.uber.org/zap v1.27.1/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
6777
go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc=
6878
go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg=
69-
golang.org/x/sys v0.41.0 h1:Ivj+2Cp/ylzLiEU89QhWblYnOE9zerudt9Ftecq2C6k=
70-
golang.org/x/sys v0.41.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
79+
golang.org/x/mod v0.33.0 h1:tHFzIWbBifEmbwtGz65eaWyGiGZatSrT9prnU8DbVL8=
80+
golang.org/x/mod v0.33.0/go.mod h1:swjeQEj+6r7fODbD2cqrnje9PnziFuw4bmLbBZFrQ5w=
81+
golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4=
82+
golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
83+
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
84+
golang.org/x/sys v0.42.0 h1:omrd2nAlyT5ESRdCLYdm3+fMfNFE/+Rf4bDIQImRJeo=
85+
golang.org/x/sys v0.42.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
7186
golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI=
7287
golang.org/x/time v0.14.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4=
88+
golang.org/x/tools v0.42.0 h1:uNgphsn75Tdz5Ji2q36v/nsFSfR/9BRFvqhGBaJGd5k=
89+
golang.org/x/tools v0.42.0/go.mod h1:Ma6lCIwGZvHK6XtgbswSoWroEkhugApmsXyrUmBhfr0=
7390
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
7491
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=
7592
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
7693
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
7794
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
95+
modernc.org/cc/v4 v4.27.1 h1:9W30zRlYrefrDV2JE2O8VDtJ1yPGownxciz5rrbQZis=
96+
modernc.org/cc/v4 v4.27.1/go.mod h1:uVtb5OGqUKpoLWhqwNQo/8LwvoiEBLvZXIQ/SmO6mL0=
97+
modernc.org/ccgo/v4 v4.32.0 h1:hjG66bI/kqIPX1b2yT6fr/jt+QedtP2fqojG2VrFuVw=
98+
modernc.org/ccgo/v4 v4.32.0/go.mod h1:6F08EBCx5uQc38kMGl+0Nm0oWczoo1c7cgpzEry7Uc0=
99+
modernc.org/fileutil v1.4.0 h1:j6ZzNTftVS054gi281TyLjHPp6CPHr2KCxEXjEbD6SM=
100+
modernc.org/fileutil v1.4.0/go.mod h1:EqdKFDxiByqxLk8ozOxObDSfcVOv/54xDs/DUHdvCUU=
101+
modernc.org/gc/v2 v2.6.5 h1:nyqdV8q46KvTpZlsw66kWqwXRHdjIlJOhG6kxiV/9xI=
102+
modernc.org/gc/v2 v2.6.5/go.mod h1:YgIahr1ypgfe7chRuJi2gD7DBQiKSLMPgBQe9oIiito=
103+
modernc.org/gc/v3 v3.1.2 h1:ZtDCnhonXSZexk/AYsegNRV1lJGgaNZJuKjJSWKyEqo=
104+
modernc.org/gc/v3 v3.1.2/go.mod h1:HFK/6AGESC7Ex+EZJhJ2Gni6cTaYpSMmU/cT9RmlfYY=
105+
modernc.org/goabi0 v0.2.0 h1:HvEowk7LxcPd0eq6mVOAEMai46V+i7Jrj13t4AzuNks=
106+
modernc.org/goabi0 v0.2.0/go.mod h1:CEFRnnJhKvWT1c1JTI3Avm+tgOWbkOu5oPA8eH8LnMI=
107+
modernc.org/libc v1.70.0 h1:U58NawXqXbgpZ/dcdS9kMshu08aiA6b7gusEusqzNkw=
108+
modernc.org/libc v1.70.0/go.mod h1:OVmxFGP1CI/Z4L3E0Q3Mf1PDE0BucwMkcXjjLntvHJo=
109+
modernc.org/mathutil v1.7.1 h1:GCZVGXdaN8gTqB1Mf/usp1Y/hSqgI2vAGGP4jZMCxOU=
110+
modernc.org/mathutil v1.7.1/go.mod h1:4p5IwJITfppl0G4sUEDtCr4DthTaT47/N3aT6MhfgJg=
111+
modernc.org/memory v1.11.0 h1:o4QC8aMQzmcwCK3t3Ux/ZHmwFPzE6hf2Y5LbkRs+hbI=
112+
modernc.org/memory v1.11.0/go.mod h1:/JP4VbVC+K5sU2wZi9bHoq2MAkCnrt2r98UGeSK7Mjw=
113+
modernc.org/opt v0.1.4 h1:2kNGMRiUjrp4LcaPuLY2PzUfqM/w9N23quVwhKt5Qm8=
114+
modernc.org/opt v0.1.4/go.mod h1:03fq9lsNfvkYSfxrfUhZCWPk1lm4cq4N+Bh//bEtgns=
115+
modernc.org/sortutil v1.2.1 h1:+xyoGf15mM3NMlPDnFqrteY07klSFxLElE2PVuWIJ7w=
116+
modernc.org/sortutil v1.2.1/go.mod h1:7ZI3a3REbai7gzCLcotuw9AC4VZVpYMjDzETGsSMqJE=
117+
modernc.org/sqlite v1.47.0 h1:R1XyaNpoW4Et9yly+I2EeX7pBza/w+pmYee/0HJDyKk=
118+
modernc.org/sqlite v1.47.0/go.mod h1:hWjRO6Tj/5Ik8ieqxQybiEOUXy0NJFNp2tpvVpKlvig=
119+
modernc.org/strutil v1.2.1 h1:UneZBkQA+DX2Rp35KcM69cSsNES9ly8mQWD71HKlOA0=
120+
modernc.org/strutil v1.2.1/go.mod h1:EHkiggD70koQxjVdSBM3JKM7k6L0FbGE5eymy9i3B9A=
121+
modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y=
122+
modernc.org/token v1.1.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM=

internals/config/structure/structure.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ type Templating struct {
9797
}
9898

9999
type Scheduling struct {
100+
// Enabled is needed because this isn't a data-driven setting, but rather a toggle
100101
Enabled bool `koanf:"enabled"`
101102
MaxHorizon t.Opt[g.TimeDuration] `koanf:"maxhorizon"`
102103
}
@@ -113,6 +114,19 @@ type ACCESS struct {
113114
IP_FILTER t.Opt[IPFilter] `koanf:"ipfilter"`
114115
TRUSTED_IPS t.Opt[[]g.IPOrNet] `koanf:"trustedips"`
115116
TRUSTED_PROXIES t.Opt[[]g.IPOrNet] `koanf:"trustedproxies"`
117+
CORS t.Opt[Cors] `koanf:"cors"`
118+
}
119+
120+
type Cors struct {
121+
Origins []Origin `koanf:"origins"`
122+
Methods t.Opt[[]string] `koanf:"methods"`
123+
Headers t.Opt[[]string] `koanf:"headers"`
124+
}
125+
126+
type Origin struct {
127+
URL g.URL `koanf:"url"`
128+
Methods t.Opt[[]string] `koanf:"methods"`
129+
Headers t.Opt[[]string] `koanf:"headers"`
116130
}
117131

118132
type FieldPolicies = *t.Comp[c.RFieldPolicies, c.FieldPolicies]

0 commit comments

Comments
 (0)