summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2025-04-14 16:10:01 -0600
committermo khan <mo@mokhan.ca>2025-04-14 16:10:01 -0600
commita8c6e1a4aee4a616cd7c73a39e579d7c9b63d720 (patch)
treeae14a445308299be1addc51b1c4377735a9a8f52
parentefc3c293f472a6993ca086fa335daf3719c6922a (diff)
feat: connect the sessions controller into the app
-rw-r--r--Dockerfile2
-rw-r--r--Makefile2
-rw-r--r--app/app.go7
-rw-r--r--app/init.go21
4 files changed, 27 insertions, 5 deletions
diff --git a/Dockerfile b/Dockerfile
index 7e26056..a6dc8e5 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -4,12 +4,12 @@ ENV CGO_ENABLED=0
WORKDIR /app
COPY . ./
RUN make build && mv ./sparkled /bin/sparkled
-CMD ["/bin/sparkled"]
FROM scratch
ENV BIND_ADDR=":http"
EXPOSE 80
WORKDIR /var/www/
+COPY --from=build /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
COPY --from=build /bin/sparkled /bin/sparkled
COPY --from=build /app/public /var/www/public
CMD ["/bin/sparkled"]
diff --git a/Makefile b/Makefile
index fb84df7..8a66869 100644
--- a/Makefile
+++ b/Makefile
@@ -30,7 +30,7 @@ build-image:
build-builder-image:
@docker build --target build --tag $(IMAGE_TAG) .
-run: build
+run: clean build
BIND_ADDR=:8080 ./sparkled
run-image: build-image
diff --git a/app/app.go b/app/app.go
index 0d3dd05..ad33d97 100644
--- a/app/app.go
+++ b/app/app.go
@@ -5,8 +5,8 @@ import (
"github.com/xlgmokha/x/pkg/ioc"
"gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/app/controllers/health"
+ "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/app/controllers/sessions"
"gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/app/controllers/sparkles"
- "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/pkg/db"
"gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/pkg/web"
)
@@ -14,8 +14,9 @@ func New() http.Handler {
mux := ioc.MustResolve[*http.ServeMux](ioc.Default)
mountable := []web.Mountable{
- sparkles.New(ioc.MustResolve[db.Repository](ioc.Default)),
- health.New(),
+ ioc.MustResolve[*sparkles.Controller](ioc.Default),
+ ioc.MustResolve[*sessions.Controller](ioc.Default),
+ ioc.MustResolve[*health.Controller](ioc.Default),
}
for _, m := range mountable {
m.MountTo(mux)
diff --git a/app/init.go b/app/init.go
index 9ff7bec..9bffde8 100644
--- a/app/init.go
+++ b/app/init.go
@@ -1,12 +1,17 @@
package app
import (
+ "context"
+ "log"
"net/http"
+ "github.com/xlgmokha/x/pkg/env"
"github.com/xlgmokha/x/pkg/ioc"
"gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/app/controllers/health"
+ "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/app/controllers/sessions"
"gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/app/controllers/sparkles"
"gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/pkg/db"
+ "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/pkg/oidc"
)
func init() {
@@ -22,4 +27,20 @@ func init() {
ioc.Register[*health.Controller](ioc.Default, func() *health.Controller {
return health.New()
})
+ ioc.RegisterSingleton[*oidc.OpenID](ioc.Default, func() *oidc.OpenID {
+ item, err := oidc.New(
+ context.Background(),
+ env.Fetch("OIDC_ISSUER", "https://gitlab.com"),
+ env.Fetch("OAUTH_CLIENT_ID", "client_id"),
+ env.Fetch("OAUTH_CLIENT_SECRET", "client_secret"),
+ env.Fetch("OAUTH_REDIRECT_URL", "https://localhost/session/callback"),
+ )
+ if err != nil {
+ log.Fatal(err)
+ }
+ return item
+ })
+ ioc.Register[*sessions.Controller](ioc.Default, func() *sessions.Controller {
+ return sessions.New(ioc.MustResolve[*oidc.OpenID](ioc.Default))
+ })
}