aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmd/anubis/decaymap.go6
-rw-r--r--go.mod36
-rw-r--r--go.sum67
-rw-r--r--kube/aeacus/headscale/deployment.yaml2
-rw-r--r--kube/aeacus/x/httpdebug.yaml12
-rw-r--r--kube/aeacus/x/kustomization.yaml3
-rw-r--r--kube/aeacus/x/stickers.yaml20
-rw-r--r--kube/aeacus/x/stickers/1password.yaml6
-rw-r--r--kube/aeacus/x/stickers/deployment.yaml60
-rw-r--r--kube/aeacus/x/stickers/ingress.yaml25
-rw-r--r--kube/aeacus/x/stickers/kustomization.yaml5
-rw-r--r--kube/aeacus/x/stickers/service.yaml14
-rw-r--r--wasm/malloc_other.go7
-rw-r--r--wasm/wasm.go18
-rw-r--r--wasm/wasm_host.go50
15 files changed, 155 insertions, 176 deletions
diff --git a/cmd/anubis/decaymap.go b/cmd/anubis/decaymap.go
index bf55d2a..f97c4c6 100644
--- a/cmd/anubis/decaymap.go
+++ b/cmd/anubis/decaymap.go
@@ -37,7 +37,11 @@ func (m *DecayMap[K, V]) Get(key K) (V, bool) {
if time.Now().After(value.expiry) {
m.lock.Lock()
- delete(m.data, key)
+ // Since previously reading m.data[key], the value may have been updated.
+ // Delete the entry only if the expiry time is still the same.
+ if m.data[key].expiry == value.expiry {
+ delete(m.data, key)
+ }
m.lock.Unlock()
return zilch[V](), false
diff --git a/go.mod b/go.mod
index 2a1e06e..ceffceb 100644
--- a/go.mod
+++ b/go.mod
@@ -24,13 +24,13 @@ require (
github.com/dop251/goja v0.0.0-20230531210528-d7324b2d74f7
github.com/eaburns/peggy v1.0.2
github.com/facebookgo/ensure v0.0.0-20160127193407-b4ab57deab51
- github.com/gen2brain/avif v0.3.1
+ github.com/gen2brain/avif v0.4.3
github.com/gen2brain/heic v0.3.0
- github.com/gen2brain/jpegxl v0.3.0
+ github.com/gen2brain/jpegxl v0.4.4
github.com/gen2brain/webp v0.4.4
github.com/go-gorm/caches/v4 v4.0.5
github.com/go-interpreter/wagon v0.6.0
- github.com/goccy/go-json v0.10.2
+ github.com/goccy/go-json v0.10.5
github.com/golang-jwt/jwt/v5 v5.2.1
github.com/gomarkdown/markdown v0.0.0-20240328165702-4d01890c35c0
github.com/google/go-github v17.0.0+incompatible
@@ -67,7 +67,6 @@ require (
github.com/thoj/go-ircevent v0.0.0-20210723090443-73e444401d64
github.com/tmc/scp v0.0.0-20170824174625-f7b48647feef
github.com/twitchtv/twirp v8.1.3+incompatible
- github.com/whyrusleeping/cbor-gen v0.1.3-0.20240904181319-8dc02b38228c
github.com/whyrusleeping/go-did v0.0.0-20230824162731-404d1707d5d6
go.etcd.io/bbolt v1.4.0
go.jetpack.io/tyson v0.1.1
@@ -75,7 +74,6 @@ require (
golang.org/x/crypto v0.33.0
golang.org/x/oauth2 v0.25.0
golang.org/x/sync v0.11.0
- golang.org/x/xerrors v0.0.0-20240716161551-93cc26a95ae9
google.golang.org/grpc v1.70.0
gorm.io/gorm v1.25.12
gorm.io/plugin/prometheus v0.1.0
@@ -94,7 +92,7 @@ require (
github.com/andybalholm/brotli v1.1.1 // indirect
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.8 // indirect
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.29 // indirect
- github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.2 // indirect
+ github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.5.3 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.10 // indirect
github.com/bytedance/sonic v1.12.6 // indirect
@@ -108,7 +106,7 @@ require (
github.com/cyphar/filepath-securejoin v0.3.6 // indirect
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
- github.com/ebitengine/purego v0.7.1 // indirect
+ github.com/ebitengine/purego v0.8.2 // indirect
github.com/emirpasic/gods v1.18.1 // indirect
github.com/evanw/esbuild v0.19.11 // indirect
github.com/fasthttp/router v1.5.3 // indirect
@@ -117,7 +115,7 @@ require (
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect
github.com/go-git/go-billy/v5 v5.6.1 // indirect
github.com/go-git/go-git/v5 v5.13.1 // indirect
- github.com/go-jose/go-jose/v4 v4.0.2 // indirect
+ github.com/go-jose/go-jose/v4 v4.0.5 // indirect
github.com/go-logr/logr v1.4.2 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/go-playground/validator/v10 v10.10.0 // indirect
@@ -199,6 +197,7 @@ require (
github.com/valyala/fasthttp v1.58.0 // indirect
github.com/valyala/fastjson v1.6.4 // indirect
github.com/whyrusleeping/cbor v0.0.0-20171005072247-63513f603b11 // indirect
+ github.com/whyrusleeping/cbor-gen v0.1.3-0.20240904181319-8dc02b38228c // indirect
github.com/xanzy/ssh-agent v0.3.3 // indirect
gitlab.com/digitalxero/go-conventional-commit v1.0.7 // indirect
gitlab.com/yawning/secp256k1-voi v0.0.0-20230925100816-f2616030848b // indirect
@@ -211,6 +210,7 @@ require (
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.27.0 // indirect
golang.org/x/arch v0.6.0 // indirect
+ golang.org/x/xerrors v0.0.0-20240716161551-93cc26a95ae9 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20241202173237-19429a94021a // indirect
gopkg.in/warnings.v0 v0.1.2 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
@@ -219,17 +219,17 @@ require (
)
require (
- github.com/aws/aws-sdk-go-v2 v1.36.1
+ github.com/aws/aws-sdk-go-v2 v1.36.3
github.com/aws/aws-sdk-go-v2/config v1.27.12
- github.com/aws/aws-sdk-go-v2/credentials v1.17.59
- github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.28 // indirect
- github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.32 // indirect
- github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.32 // indirect
+ github.com/aws/aws-sdk-go-v2/credentials v1.17.60
+ github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.29 // indirect
+ github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.33 // indirect
+ github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.33 // indirect
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect
- github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.13 // indirect
- github.com/aws/aws-sdk-go-v2/service/sso v1.24.15 // indirect
- github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.14 // indirect
- github.com/aws/aws-sdk-go-v2/service/sts v1.33.14 // indirect
+ github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.14 // indirect
+ github.com/aws/aws-sdk-go-v2/service/sso v1.24.16 // indirect
+ github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.15 // indirect
+ github.com/aws/aws-sdk-go-v2/service/sts v1.33.15 // indirect
github.com/aws/smithy-go v1.22.2
github.com/beorn7/perks v1.0.1 // indirect
github.com/cespare/xxhash/v2 v2.3.0 // indirect
@@ -258,7 +258,7 @@ require (
github.com/sacOO7/gowebsocket v0.0.0-20221109081133-70ac927be105
github.com/sendgrid/rest v2.6.9+incompatible // indirect
golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56
- golang.org/x/image v0.23.0
+ golang.org/x/image v0.24.0
golang.org/x/mod v0.23.0 // indirect
golang.org/x/net v0.35.0
golang.org/x/sys v0.30.0 // indirect
diff --git a/go.sum b/go.sum
index 2f03dd2..e12c1e0 100644
--- a/go.sum
+++ b/go.sum
@@ -115,40 +115,40 @@ github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuW
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio=
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
-github.com/aws/aws-sdk-go-v2 v1.36.1 h1:iTDl5U6oAhkNPba0e1t1hrwAo02ZMqbrGq4k5JBWM5E=
-github.com/aws/aws-sdk-go-v2 v1.36.1/go.mod h1:5PMILGVKiW32oDzjj6RU52yrNrDPUHcbZQYr1sM7qmM=
+github.com/aws/aws-sdk-go-v2 v1.36.3 h1:mJoei2CxPutQVxaATCzDUjcZEjVRdpsiiXi2o38yqWM=
+github.com/aws/aws-sdk-go-v2 v1.36.3/go.mod h1:LLXuLpgzEbD766Z5ECcRmi8AzSwfZItDtmABVkRLGzg=
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.8 h1:zAxi9p3wsZMIaVCdoiQp2uZ9k1LsZvmAnoTBeZPXom0=
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.8/go.mod h1:3XkePX5dSaxveLAYY7nsbsZZrKxCyEuE5pM4ziFxyGg=
github.com/aws/aws-sdk-go-v2/config v1.27.12 h1:vq88mBaZI4NGLXk8ierArwSILmYHDJZGJOeAc/pzEVQ=
github.com/aws/aws-sdk-go-v2/config v1.27.12/go.mod h1:IOrsf4IiN68+CgzyuyGUYTpCrtUQTbbMEAtR/MR/4ZU=
-github.com/aws/aws-sdk-go-v2/credentials v1.17.59 h1:9btwmrt//Q6JcSdgJOLI98sdr5p7tssS9yAsGe8aKP4=
-github.com/aws/aws-sdk-go-v2/credentials v1.17.59/go.mod h1:NM8fM6ovI3zak23UISdWidyZuI1ghNe2xjzUZAyT+08=
-github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.28 h1:KwsodFKVQTlI5EyhRSugALzsV6mG/SGrdjlMXSZSdso=
-github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.28/go.mod h1:EY3APf9MzygVhKuPXAc5H+MkGb8k/DOSQjWS0LgkKqI=
-github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.32 h1:BjUcr3X3K0wZPGFg2bxOWW3VPN8rkE3/61zhP+IHviA=
-github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.32/go.mod h1:80+OGC/bgzzFFTUmcuwD0lb4YutwQeKLFpmt6hoWapU=
-github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.32 h1:m1GeXHVMJsRsUAqG6HjZWx9dj7F5TR+cF1bjyfYyBd4=
-github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.32/go.mod h1:IitoQxGfaKdVLNg0hD8/DXmAqNy0H4K2H2Sf91ti8sI=
+github.com/aws/aws-sdk-go-v2/credentials v1.17.60 h1:1dq+ELaT5ogfmqtV1eocq8SpOK1NRsuUfmhQtD/XAh4=
+github.com/aws/aws-sdk-go-v2/credentials v1.17.60/go.mod h1:HDes+fn/xo9VeszXqjBVkxOo/aUy8Mc6QqKvZk32GlE=
+github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.29 h1:JO8pydejFKmGcUNiiwt75dzLHRWthkwApIvPoyUtXEg=
+github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.29/go.mod h1:adxZ9i9DRmB8zAT0pO0yGnsmu0geomp5a3uq5XpgOJ8=
+github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.33 h1:knLyPMw3r3JsU8MFHWctE4/e2qWbPaxDYLlohPvnY8c=
+github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.33/go.mod h1:EBp2HQ3f+XCB+5J+IoEbGhoV7CpJbnrsd4asNXmTL0A=
+github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.33 h1:K0+Ne08zqti8J9jwENxZ5NoUyBnaFDTu3apwQJWrwwA=
+github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.33/go.mod h1:K97stwwzaWzmqxO8yLGHhClbVW1tC6VT1pDLk1pGrq4=
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU=
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY=
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.29 h1:g9OUETuxA8i/Www5Cby0R3WSTe7ppFTZXHVLNskNS4w=
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.29/go.mod h1:CQk+koLR1QeY1+vm7lqNfFii07DEderKq6T3F1L2pyc=
-github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.2 h1:D4oz8/CzT9bAEYtVhSBmFj2dNOtaHOtMKc2vHBwYizA=
-github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.2/go.mod h1:Za3IHqTQ+yNcRHxu1OFucBh0ACZT4j4VQFF0BqpZcLY=
+github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3 h1:eAh2A4b5IzM/lum78bZ590jy36+d/aFLgKF/4Vd1xPE=
+github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3/go.mod h1:0yKJC/kb8sAnmlYa6Zs3QVYqaC8ug2AbnNChv5Ox3uA=
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.5.3 h1:EP1ITDgYVPM2dL1bBBntJ7AW5yTjuWGz9XO+CZwpALU=
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.5.3/go.mod h1:5lWNWeAgWenJ/BZ/CP9k9DjLbC0pjnM045WjXRPPi14=
-github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.13 h1:SYVGSFQHlchIcy6e7x12bsrxClCXSP5et8cqVhL8cuw=
-github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.13/go.mod h1:kizuDaLX37bG5WZaoxGPQR/LNFXpxp0vsUnqfkWXfNE=
+github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.14 h1:2scbY6//jy/s8+5vGrk7l1+UtHl0h9A4MjOO2k/TM2E=
+github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.14/go.mod h1:bRpZPHZpSe5YRHmPfK3h1M7UBFCn2szHzyx0rw04zro=
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.10 h1:fXoWC2gi7tdJYNTPnnlSGzEVwewUchOi8xVq/dkg8Qs=
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.10/go.mod h1:cvzBApD5dVazHU8C2rbBQzzzsKc8m5+wNJ9mCRZLKPc=
github.com/aws/aws-sdk-go-v2/service/s3 v1.74.1 h1:9LawY3cDJ3HE+v2GMd5SOkNLDwgN4K7TsCjyVBYu/L4=
github.com/aws/aws-sdk-go-v2/service/s3 v1.74.1/go.mod h1:hHnELVnIHltd8EOF3YzahVX6F6y2C6dNqpRj1IMkS5I=
-github.com/aws/aws-sdk-go-v2/service/sso v1.24.15 h1:/eE3DogBjYlvlbhd2ssWyeuovWunHLxfgw3s/OJa4GQ=
-github.com/aws/aws-sdk-go-v2/service/sso v1.24.15/go.mod h1:2PCJYpi7EKeA5SkStAmZlF6fi0uUABuhtF8ILHjGc3Y=
-github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.14 h1:M/zwXiL2iXUrHputuXgmO94TVNmcenPHxgLXLutodKE=
-github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.14/go.mod h1:RVwIw3y/IqxC2YEXSIkAzRDdEU1iRabDPaYjpGCbCGQ=
-github.com/aws/aws-sdk-go-v2/service/sts v1.33.14 h1:TzeR06UCMUq+KA3bDkujxK1GVGy+G8qQN/QVYzGLkQE=
-github.com/aws/aws-sdk-go-v2/service/sts v1.33.14/go.mod h1:dspXf/oYWGWo6DEvj98wpaTeqt5+DMidZD0A9BYTizc=
+github.com/aws/aws-sdk-go-v2/service/sso v1.24.16 h1:YV6xIKDJp6U7YB2bxfud9IENO1LRpGhe2Tv/OKtPrOQ=
+github.com/aws/aws-sdk-go-v2/service/sso v1.24.16/go.mod h1:DvbmMKgtpA6OihFJK13gHMZOZrCHttz8wPHGKXqU+3o=
+github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.15 h1:kMyK3aKotq1aTBsj1eS8ERJLjqYRRRcsmP33ozlCvlk=
+github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.15/go.mod h1:5uPZU7vSNzb8Y0dm75xTikinegPYK3uJmIHQZFq5Aqo=
+github.com/aws/aws-sdk-go-v2/service/sts v1.33.15 h1:ht1jVmeeo2anR7zDiYJLSnRYnO/9NILXXu42FP3rJg0=
+github.com/aws/aws-sdk-go-v2/service/sts v1.33.15/go.mod h1:xWZ5cOiFe3czngChE4LhCBqUxNwgfwndEF7XlYP/yD8=
github.com/aws/smithy-go v1.22.2 h1:6D9hW43xKFrRx/tXXfAlIZc4JI+yQe6snnWcQyxSyLQ=
github.com/aws/smithy-go v1.22.2/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg=
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
@@ -249,8 +249,8 @@ github.com/eaburns/peggy v1.0.2 h1:RJwNVF4cvzLGiKInHGBT8sVwP5HDuVP/PaBU9tHO9Rk=
github.com/eaburns/peggy v1.0.2/go.mod h1:X2pbl0EV5erfnK8kSGwo0lBCgMGokvR1E6KerAoDKXg=
github.com/eaburns/pretty v1.0.0 h1:00W1wrrtMXUSqLPN0txS8j7g9qFXy6nA5vZVqVQOo6w=
github.com/eaburns/pretty v1.0.0/go.mod h1:retcK8A0KEgdmb0nuxhvyxixwCmEPO7SKlK0IJhjg8A=
-github.com/ebitengine/purego v0.7.1 h1:6/55d26lG3o9VCZX8lping+bZcmShseiqlh2bnUDiPA=
-github.com/ebitengine/purego v0.7.1/go.mod h1:ah1In8AOtksoNK6yk5z1HTJeUkC1Ez4Wk2idgGslMwQ=
+github.com/ebitengine/purego v0.8.2 h1:jPPGWs2sZ1UgOSgD2bClL0MJIqu58nOmIcBuXr62z1I=
+github.com/ebitengine/purego v0.8.2/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ=
github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M=
github.com/elazarl/goproxy v1.2.3 h1:xwIyKHbaP5yfT6O9KIeYJR5549MXRQkoQMRXGztz8YQ=
github.com/elazarl/goproxy v1.2.3/go.mod h1:YfEbZtqP4AetfO6d40vWchF3znWX7C7Vd6ZMfdL8z64=
@@ -284,12 +284,12 @@ github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2
github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
-github.com/gen2brain/avif v0.3.1 h1:womS2LKvhS/dSR3zIKUxtJW+riGlY48akGWqc+YgHtE=
-github.com/gen2brain/avif v0.3.1/go.mod h1:s9sI2zo2cF6EdyRVCtnIfwL/Qb3k0TkOIEsz6ovK1ms=
+github.com/gen2brain/avif v0.4.3 h1:pxpXOCIA4YfB6wxDagbNCpXdTh5/1q3huedPx0arqwA=
+github.com/gen2brain/avif v0.4.3/go.mod h1:L0hvma2Pwz8HWgE3w7KkRIUYxnVEZ94ZfVQGKwaIQ40=
github.com/gen2brain/heic v0.3.0 h1:YDw7cerzjnxmb+/o5RAEpRy9j4jsFYCh9DuP1NDOc7Q=
github.com/gen2brain/heic v0.3.0/go.mod h1:+x0Y/m2EP1kd6mWvC131B3IK4eoKtLBBqJJ1uJB8CT8=
-github.com/gen2brain/jpegxl v0.3.0 h1:hfnZykNPnyVksr6gtHVoiEuOHfJwXnrJLtP4RN1B7Lk=
-github.com/gen2brain/jpegxl v0.3.0/go.mod h1:zi+BuuV3cTYRG3dt6dS0nT3DxVLZXkQUCIOirPEzKXk=
+github.com/gen2brain/jpegxl v0.4.4 h1:d3N8xvDvKoaancSnkIyQBrSHTnbjhb9iajljiRTAFak=
+github.com/gen2brain/jpegxl v0.4.4/go.mod h1:srG5W0zWofkpzWYAv3HldaSghHs4+3F0VjnL8ohpkm8=
github.com/gen2brain/webp v0.4.4 h1:1cpydwbHid5ReumxE3kHWua9eimKONjeEo5CxeUcAtE=
github.com/gen2brain/webp v0.4.4/go.mod h1:4B2bZAeutMBvabnV96t3S06eW3wWfr6uU5nw4X5j+zc=
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
@@ -310,8 +310,8 @@ github.com/go-gorm/caches/v4 v4.0.5 h1:Sdj9vxbEM0sCmv5+s5o6GzoVMuraWF0bjJJvUU+7c
github.com/go-gorm/caches/v4 v4.0.5/go.mod h1:Ms8LnWVoW4GkTofpDzFH8OfDGNTjLxQDyxBmRN67Ujw=
github.com/go-interpreter/wagon v0.6.0 h1:BBxDxjiJiHgw9EdkYXAWs8NHhwnazZ5P2EWBW5hFNWw=
github.com/go-interpreter/wagon v0.6.0/go.mod h1:5+b/MBYkclRZngKF5s6qrgWxSLgE9F5dFdO1hAueZLc=
-github.com/go-jose/go-jose/v4 v4.0.2 h1:R3l3kkBds16bO7ZFAEEcofK0MkrAJt3jlJznWZG0nvk=
-github.com/go-jose/go-jose/v4 v4.0.2/go.mod h1:WVf9LFMHh/QVrmqrOfqun0C45tMe3RoiKJMPvgWwLfY=
+github.com/go-jose/go-jose/v4 v4.0.5 h1:M6T8+mKZl/+fNNuFHvGIzDz7BTLQPIounk/b9dw3AaE=
+github.com/go-jose/go-jose/v4 v4.0.5/go.mod h1:s3P1lRrkT8igV8D9OjyL4WRyHvjB6a4JSllnOrmmBOA=
github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY=
@@ -342,8 +342,9 @@ github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/me
github.com/go-yaml/yaml v2.1.0+incompatible/go.mod h1:w2MrLa16VYP0jy6N7M5kHaCkaLENm+P+Tv+MfurjSw0=
github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y=
github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8=
-github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU=
github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
+github.com/goccy/go-json v0.10.5 h1:Fq85nIqj+gXn/S5ahsiTlK3TmC85qgirsdTP/+DeaC4=
+github.com/goccy/go-json v0.10.5/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M=
github.com/goccy/go-yaml v1.9.5/go.mod h1:U/jl18uSupI5rdI2jmuCswEA2htH9eXfferR3KfscvA=
github.com/goccy/go-yaml v1.12.0 h1:/1WHjnMsI1dlIBQutrvSMGZRQufVO3asrHfTwfACoPM=
github.com/goccy/go-yaml v1.12.0/go.mod h1:wKnAMd44+9JAAnGQpWVEgBzGt3YuTaQ4uXoHvE4m7WU=
@@ -841,10 +842,6 @@ github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXl
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
-github.com/tetratelabs/wazero v1.8.2 h1:yIgLR/b2bN31bjxwXHD8a3d+BogigR952csSDdLYEv4=
-github.com/tetratelabs/wazero v1.8.2/go.mod h1:yAI0XTsMBhREkM/YDAK/zNou3GoiAce1P6+rp/wQhjs=
-github.com/tetratelabs/wazero v1.8.3-0.20250217185257-70a9688a9f40 h1:+8cbydI2qMGurXlnljiiqpDSIXdVxtWfB+uZPM/BAxs=
-github.com/tetratelabs/wazero v1.8.3-0.20250217185257-70a9688a9f40/go.mod h1:yAI0XTsMBhREkM/YDAK/zNou3GoiAce1P6+rp/wQhjs=
github.com/tetratelabs/wazero v1.9.0 h1:IcZ56OuxrtaEz8UYNRHBrUa9bYeX9oVY93KspZZBf/I=
github.com/tetratelabs/wazero v1.9.0/go.mod h1:TSbcXCfFP0L2FGkRPxHphadXPjo1T6W+CseNNY7EkjM=
github.com/thlib/go-timezone-local v0.0.0-20210907160436-ef149e42d28e/go.mod h1:/Tnicc6m/lsJE0irFMA0LfIwTBo4QP7A8IfyIv4zZKI=
@@ -974,8 +971,8 @@ golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbR
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
-golang.org/x/image v0.23.0 h1:HseQ7c2OpPKTPVzNjG5fwJsOTCiiwS4QdsYi5XU6H68=
-golang.org/x/image v0.23.0/go.mod h1:wJJBTdLfCCf3tiHa1fNxpZmUI4mmoZvwMCPP0ddoNKY=
+golang.org/x/image v0.24.0 h1:AN7zRgVsbvmTfNyqIbbOraYL8mSwcKncEj8ofjgzcMQ=
+golang.org/x/image v0.24.0/go.mod h1:4b/ITuLfqYq1hqZcjofwctIhi7sZh2WaCjvsBNjjya8=
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
diff --git a/kube/aeacus/headscale/deployment.yaml b/kube/aeacus/headscale/deployment.yaml
index 4040c2c..563856f 100644
--- a/kube/aeacus/headscale/deployment.yaml
+++ b/kube/aeacus/headscale/deployment.yaml
@@ -26,7 +26,7 @@ spec:
enableServiceLinks: true
containers:
- name: headscale
- image: ghcr.io/juanfont/headscale:v0.24.2
+ image: ghcr.io/juanfont/headscale:v0.25.1
imagePullPolicy: Always
args:
- serve
diff --git a/kube/aeacus/x/httpdebug.yaml b/kube/aeacus/x/httpdebug.yaml
new file mode 100644
index 0000000..511eb64
--- /dev/null
+++ b/kube/aeacus/x/httpdebug.yaml
@@ -0,0 +1,12 @@
+apiVersion: x.within.website/v1
+kind: App
+metadata:
+ name: httpdebug
+
+spec:
+ image: ghcr.io/xe/x/httpdebug:latest
+ autoUpdate: true
+
+ ingress:
+ enabled: true
+ host: httpdebug.xelaso.net \ No newline at end of file
diff --git a/kube/aeacus/x/kustomization.yaml b/kube/aeacus/x/kustomization.yaml
index b141fbf..0106b54 100644
--- a/kube/aeacus/x/kustomization.yaml
+++ b/kube/aeacus/x/kustomization.yaml
@@ -1,3 +1,4 @@
resources:
- - stickers
+ - httpdebug.yaml
+ - stickers.yaml
- within.website \ No newline at end of file
diff --git a/kube/aeacus/x/stickers.yaml b/kube/aeacus/x/stickers.yaml
new file mode 100644
index 0000000..88a4174
--- /dev/null
+++ b/kube/aeacus/x/stickers.yaml
@@ -0,0 +1,20 @@
+apiVersion: x.within.website/v1
+kind: App
+metadata:
+ name: stickers
+
+spec:
+ image: ghcr.io/xe/x/stickers:latest
+ autoUpdate: true
+
+ healthcheck:
+ enabled: true
+
+ ingress:
+ enabled: true
+ host: stickers.xeiaso.net
+
+ secrets:
+ - name: tigris-creds
+ itemPath: "vaults/lc5zo4zjz3if3mkeuhufjmgmui/items/kvc2jqoyriem75ny4mvm6keguy"
+ environment: true \ No newline at end of file
diff --git a/kube/aeacus/x/stickers/1password.yaml b/kube/aeacus/x/stickers/1password.yaml
deleted file mode 100644
index b39d884..0000000
--- a/kube/aeacus/x/stickers/1password.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-apiVersion: onepassword.com/v1
-kind: OnePasswordItem
-metadata:
- name: stickers-tigris-creds
-spec:
- itemPath: "vaults/lc5zo4zjz3if3mkeuhufjmgmui/items/kvc2jqoyriem75ny4mvm6keguy" \ No newline at end of file
diff --git a/kube/aeacus/x/stickers/deployment.yaml b/kube/aeacus/x/stickers/deployment.yaml
deleted file mode 100644
index df80271..0000000
--- a/kube/aeacus/x/stickers/deployment.yaml
+++ /dev/null
@@ -1,60 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: stickers
- labels:
- app.kubernetes.io/name: stickers
- annotations:
- keel.sh/policy: all
- keel.sh/trigger: poll
- keel.sh/pollSchedule: "@hourly"
-spec:
- replicas: 1
- selector:
- matchLabels:
- app.kubernetes.io/name: stickers
- template:
- metadata:
- labels:
- app.kubernetes.io/name: stickers
- spec:
- securityContext:
- fsGroup: 1000
- containers:
- - name: main
- image: ghcr.io/xe/x/stickers:latest
- imagePullPolicy: "Always"
- envFrom:
- - secretRef:
- name: stickers-tigris-creds
- resources:
- limits:
- cpu: "500m"
- memory: "256Mi"
- requests:
- cpu: "250m"
- memory: "128Mi"
- securityContext:
- runAsUser: 1000
- runAsGroup: 1000
- runAsNonRoot: true
- allowPrivilegeEscalation: false
- capabilities:
- drop:
- - ALL
- seccompProfile:
- type: RuntimeDefault
- livenessProbe:
- httpGet:
- path: /
- port: 8080
- httpHeaders:
- - name: X-Kubernetes
- value: "is kinda okay"
- initialDelaySeconds: 3
- periodSeconds: 3
- env:
- - name: BIND
- value: ":8080"
- - name: SLOG_LEVEL
- value: DEBUG \ No newline at end of file
diff --git a/kube/aeacus/x/stickers/ingress.yaml b/kube/aeacus/x/stickers/ingress.yaml
deleted file mode 100644
index 07c9e39..0000000
--- a/kube/aeacus/x/stickers/ingress.yaml
+++ /dev/null
@@ -1,25 +0,0 @@
-apiVersion: networking.k8s.io/v1
-kind: Ingress
-metadata:
- name: stickers
- labels:
- app.kubernetes.io/name: stickers
- annotations:
- cert-manager.io/cluster-issuer: "letsencrypt-prod"
-spec:
- ingressClassName: nginx
- tls:
- - hosts:
- - stickers.xeiaso.net
- secretName: stickers-xeiaso-net-public-tls
- rules:
- - host: stickers.xeiaso.net
- http:
- paths:
- - pathType: Prefix
- path: "/"
- backend:
- service:
- name: stickers
- port:
- name: http
diff --git a/kube/aeacus/x/stickers/kustomization.yaml b/kube/aeacus/x/stickers/kustomization.yaml
deleted file mode 100644
index e51a60f..0000000
--- a/kube/aeacus/x/stickers/kustomization.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-resources:
- - 1password.yaml
- - deployment.yaml
- - service.yaml
- - ingress.yaml \ No newline at end of file
diff --git a/kube/aeacus/x/stickers/service.yaml b/kube/aeacus/x/stickers/service.yaml
deleted file mode 100644
index 85834fe..0000000
--- a/kube/aeacus/x/stickers/service.yaml
+++ /dev/null
@@ -1,14 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
- name: stickers
- labels:
- app.kubernetes.io/name: stickers
-spec:
- selector:
- app.kubernetes.io/name: stickers
- ports:
- - port: 80
- targetPort: 8080
- name: http
- type: ClusterIP \ No newline at end of file
diff --git a/wasm/malloc_other.go b/wasm/malloc_other.go
new file mode 100644
index 0000000..5d915f8
--- /dev/null
+++ b/wasm/malloc_other.go
@@ -0,0 +1,7 @@
+//go:build !wasip1
+
+package wasm
+
+func Malloc(size uint32) Buffer {
+ panic("don't call this if you're not using WASI")
+}
diff --git a/wasm/wasm.go b/wasm/wasm.go
index 5981c06..68acd17 100644
--- a/wasm/wasm.go
+++ b/wasm/wasm.go
@@ -2,22 +2,16 @@ package wasm
import (
"unsafe"
-
- "github.com/tetratelabs/wazero/api"
)
type String uint64
-func (value String) Load(module api.Module) string {
- return string(value.LoadBytes(module))
+func (value String) Address() uint32 {
+ return uint32(value >> 32)
}
-func (value String) LoadBytes(module api.Module) []byte {
- data, ok := module.Memory().Read(uint32(value>>32), uint32(value))
- if !ok {
- panic("memory read out of bounds")
- }
- return data
+func (value String) Length() uint32 {
+ return uint32((value << 32) >> 32)
}
func FromString(value string) String {
@@ -26,6 +20,10 @@ func FromString(value string) String {
return String(uint64(position)<<32 | uint64(bytes))
}
+func (value String) String() string {
+ return unsafe.String((*byte)(unsafe.Pointer(uintptr(value.Address()))), value.Length())
+}
+
type Buffer uint64
func (buffer Buffer) Address() uint32 {
diff --git a/wasm/wasm_host.go b/wasm/wasm_host.go
new file mode 100644
index 0000000..01c644d
--- /dev/null
+++ b/wasm/wasm_host.go
@@ -0,0 +1,50 @@
+//go:build !wasip1
+
+package wasm
+
+import (
+ "context"
+ "fmt"
+
+ "github.com/tetratelabs/wazero/api"
+)
+
+func (value String) Load(module api.Module) string {
+ return string(value.LoadBytes(module))
+}
+
+func (value String) LoadBytes(module api.Module) []byte {
+ data, ok := module.Memory().Read(uint32(value>>32), uint32(value))
+ if !ok {
+ panic("memory read out of bounds")
+ }
+ return data
+}
+
+func (value String) Store(ctx context.Context, module api.Module, data string) (String, error) {
+ buffer, err := Store(ctx, module, []byte(data))
+ if err != nil {
+ return 0, err
+ }
+
+ return String(buffer), nil
+}
+
+func (buffer Buffer) Load(module api.Module) []byte {
+ data, ok := module.Memory().Read(buffer.Address(), buffer.Length())
+ if !ok {
+ panic("memory read out of bounds")
+ }
+ return data
+}
+
+func Store(ctx context.Context, module api.Module, data []byte) (Buffer, error) {
+ results, err := module.ExportedFunction("malloc").Call(ctx, uint64(len(data)))
+ if err != nil {
+ return 0, fmt.Errorf("wasm: failed to call malloc: %w", err)
+ }
+
+ buffer := Buffer(results[0])
+ module.Memory().Write(buffer.Address(), data)
+ return buffer, nil
+}