From 46cf76db9ff07436a87f479643d70def8759be1e Mon Sep 17 00:00:00 2001 From: nirav-rafay <93963752+nirav-rafay@users.noreply.github.com> Date: Fri, 25 Feb 2022 17:36:37 +0530 Subject: [PATCH] issue fixes while testing getauthz and relay-agent-config gen format fix (#29) * issue fixes while testing getauthz and relay-agent-config gen format fix * addressed review comments and added idp table migrations --- README.md | 29 +++++++++-- components/adminsrv/pkg/sentry/authz/authz.go | 12 ++--- components/adminsrv/pkg/service/bootstrap.go | 4 +- .../adminsrv/pkg/service/organization.go | 2 +- components/adminsrv/server/audit_info.go | 6 +-- components/cluster-scheduler/go.mod | 21 ++++---- components/cluster-scheduler/go.sum | 49 +++++++++++------- .../internal/fixtures/data/download.yaml | 2 +- .../internal/fixtures/fixtures.go | 8 +-- components/cluster-scheduler/main.go | 19 +++---- components/common/pkg/query/options.go | 2 +- components/relay/go.mod | 18 +++---- components/relay/go.sum | 50 +++++++++++-------- .../usermgmt/internal/models/oidc_provider.go | 2 +- components/usermgmt/main.go | 6 +-- components/usermgmt/pkg/service/group.go | 4 +- .../usermgmt/pkg/sso/saml/middleware.go | 3 +- .../admindb/000004_authsrv_account.down.sql | 2 - .../admindb/000004_authsrv_account.up.sql | 35 +------------ .../000008_authsrv_resourcepermission.up.sql | 2 +- .../admindb/000028_authsrv_idp.down.sql | 1 + .../admindb/000028_authsrv_idp.up.sql | 41 +++++++++++++++ .../000029_authsrv_oidc_provider.down.sql | 1 + .../000029_authsrv_oidc_provider.up.sql | 40 +++++++++++++++ .../000030_pg_oidc_provider_triggers.down.sql | 4 ++ ...> 000030_pg_oidc_provider_triggers.up.sql} | 0 26 files changed, 226 insertions(+), 137 deletions(-) create mode 100644 persistence/migrations/admindb/000028_authsrv_idp.down.sql create mode 100644 persistence/migrations/admindb/000028_authsrv_idp.up.sql create mode 100644 persistence/migrations/admindb/000029_authsrv_oidc_provider.down.sql create mode 100644 persistence/migrations/admindb/000029_authsrv_oidc_provider.up.sql create mode 100644 persistence/migrations/admindb/000030_pg_oidc_provider_triggers.down.sql rename persistence/migrations/admindb/{pg_oidc_provider_triggers.sql => 000030_pg_oidc_provider_triggers.up.sql} (100%) diff --git a/README.md b/README.md index a2559df..1035d63 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,22 @@ # rcloud-base -rcloud-base +This repository contains all the rcloud-system components that are the backbone for ztka and gitops. + +## Prerequisites +1) Postgres database +2) [`Ory Kratos`](https://www.ory.sh/kratos) - API for user management +3) We use [`Casbin`](https://casbin.org) - An authorization library that supports access control models like ACL, RBAC, ABAC ## Setting up the database +You can use the [`bitnami charts for postgresql`](https://github.com/bitnami/charts/tree/master/bitnami/postgresql/#installing-the-chart) ### Create the initial db/user -Example for `admindb`: +Scripts for `admindb`: ``` sql create database admindb; -create user admindbuser; +CREATE ROLE admindbuser WITH LOGIN PASSWORD ''; +GRANT ALL PRIVILEGES ON DATABASE admindb to admindbuser; ``` Now in the newly created db: @@ -19,6 +26,22 @@ CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; grant execute on function uuid_generate_v4() to admindbuser; ``` +Scripts for `clusterdb`: + +``` sql +create database clusterdb; +CREATE ROLE clusterdbuser WITH LOGIN PASSWORD ''; +GRANT ALL PRIVILEGES ON DATABASE clusterdb to clusterdbuser; +``` + +Now in the newly created db: + +``` sql +CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; +grant execute on function uuid_generate_v4() to clusterdbuser; +``` + + *This will grant the necessary permission to the newly created user to run uuid_generate_v4()* ### Run application migrations diff --git a/components/adminsrv/pkg/sentry/authz/authz.go b/components/adminsrv/pkg/sentry/authz/authz.go index 1d57bed..26fe120 100644 --- a/components/adminsrv/pkg/sentry/authz/authz.go +++ b/components/adminsrv/pkg/sentry/authz/authz.go @@ -11,7 +11,6 @@ import ( "github.com/RafaySystems/rcloud-base/components/adminsrv/pkg/sentry/kubeconfig" "github.com/RafaySystems/rcloud-base/components/adminsrv/pkg/service" "github.com/RafaySystems/rcloud-base/components/common/pkg/controller/runtime" - "github.com/RafaySystems/rcloud-base/components/common/pkg/hasher" "github.com/RafaySystems/rcloud-base/components/common/pkg/log" "github.com/RafaySystems/rcloud-base/components/common/pkg/query" configrpc "github.com/RafaySystems/rcloud-base/components/common/proto/rpc/config" @@ -309,10 +308,7 @@ func getProjectsFromLabels(labels map[string]string) ([]string, error) { if len(s) != 2 { continue } - projectID, err := hasher.IDFromHash(s[1]) - if err != nil { - return nil, err - } + projectID := s[1] projects = append(projects, projectID) } return projects, nil @@ -349,17 +345,17 @@ func GetAuthorization(ctx context.Context, req *sentryrpc.GetUserAuthorizationRe // get attributes from user CN cnAttr := kubeconfig.GetCNAttributes(req.UserCN) - accountID, err := hasher.IDFromHash(cnAttr.AccountID) + accountID := cnAttr.AccountID if err != nil { _log.Errorw("error getting accountID from user CN", "userCN", req.UserCN) return nil, err } - orgID, err := hasher.IDFromHash(cnAttr.OrganizationID) + orgID := cnAttr.OrganizationID if err != nil { _log.Errorw("error getting orgID from user CN", "userCN", req.UserCN) return nil, err } - partnerID, err := hasher.IDFromHash(cnAttr.PartnerID) + partnerID := cnAttr.PartnerID if err != nil { _log.Errorw("error getting partnerID from user CN", "userCN", req.UserCN) return nil, err diff --git a/components/adminsrv/pkg/service/bootstrap.go b/components/adminsrv/pkg/service/bootstrap.go index 434c58d..5b22cf4 100644 --- a/components/adminsrv/pkg/service/bootstrap.go +++ b/components/adminsrv/pkg/service/bootstrap.go @@ -297,7 +297,9 @@ func (s *bootstrapService) GetBootstrapAgents(ctx context.Context, templateRef s } ret = new(sentry.BootstrapAgentList) - ret.Metadata.Count = int64(count) + ret.Metadata = &commonv3.ListMetadata{ + Count: int64(count), + } for _, ag := range agl { ret.Items = append(ret.Items, prepareAgentResponse(&ag)) } diff --git a/components/adminsrv/pkg/service/organization.go b/components/adminsrv/pkg/service/organization.go index c34bcd1..4baa0df 100644 --- a/components/adminsrv/pkg/service/organization.go +++ b/components/adminsrv/pkg/service/organization.go @@ -52,7 +52,7 @@ func NewOrganizationService(db *bun.DB) OrganizationService { func (s *organizationService) Create(ctx context.Context, org *systemv3.Organization) (*systemv3.Organization, error) { var partner models.Partner - _, err := s.dao.GetByName(ctx, org.Metadata.Name, &partner) + _, err := s.dao.GetByName(ctx, org.Metadata.Partner, &partner) if err != nil { return nil, err } diff --git a/components/adminsrv/server/audit_info.go b/components/adminsrv/server/audit_info.go index 8a249d4..4595cfa 100644 --- a/components/adminsrv/server/audit_info.go +++ b/components/adminsrv/server/audit_info.go @@ -10,7 +10,6 @@ import ( "github.com/RafaySystems/rcloud-base/components/adminsrv/pkg/sentry/kubeconfig" "github.com/RafaySystems/rcloud-base/components/adminsrv/pkg/service" - "github.com/RafaySystems/rcloud-base/components/common/pkg/hasher" ) type auditInfoServer struct { @@ -42,10 +41,7 @@ func (s *auditInfoServer) LookupUser(ctx context.Context, req *sentryrpc.LookupU }, nil } - accountID, err := hasher.IDFromHash(attrs.AccountID) - if err != nil { - return nil, err - } + accountID := attrs.AccountID var userName string account, err := s.aps.GetAccount(ctx, accountID) diff --git a/components/cluster-scheduler/go.mod b/components/cluster-scheduler/go.mod index 418117f..4422def 100644 --- a/components/cluster-scheduler/go.mod +++ b/components/cluster-scheduler/go.mod @@ -14,9 +14,13 @@ require ( github.com/uptrace/bun/dialect/pgdialect v1.0.21 github.com/uptrace/bun/driver/pgdriver v1.0.21 github.com/uptrace/bun/extra/bundebug v1.0.21 + google.golang.org/genproto v0.0.0-20220118154757-00ab72f36ad5 google.golang.org/grpc v1.44.0 google.golang.org/protobuf v1.27.1 - sigs.k8s.io/controller-runtime v0.11.0 + k8s.io/api v0.23.4 + k8s.io/apimachinery v0.23.4 + k8s.io/client-go v0.23.4 + sigs.k8s.io/controller-runtime v0.11.1 ) require ( @@ -38,7 +42,6 @@ require ( github.com/imdario/mergo v0.3.12 // indirect github.com/jinzhu/inflection v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect - github.com/julienschmidt/httprouter v1.3.0 // indirect github.com/magiconair/properties v1.8.5 // indirect github.com/mattn/go-colorable v0.1.12 // indirect github.com/mattn/go-isatty v0.0.14 // indirect @@ -46,6 +49,7 @@ require ( github.com/mitchellh/mapstructure v1.4.3 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/ory/kratos-client-go v0.8.2-alpha.1 // indirect github.com/pelletier/go-toml v1.9.4 // indirect github.com/processout/grpc-go-pool v1.2.1 // indirect github.com/prometheus/client_golang v1.11.0 // indirect @@ -62,6 +66,7 @@ require ( github.com/spf13/pflag v1.0.5 // indirect github.com/subosito/gotenv v1.2.0 // indirect github.com/tmthrgd/go-hex v0.0.0-20190904060850-447a3041c3bc // indirect + github.com/urfave/negroni v1.0.0 // indirect github.com/valyala/fastjson v1.6.3 // indirect github.com/vmihailenco/msgpack/v5 v5.3.5 // indirect github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect @@ -77,20 +82,16 @@ require ( golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac // indirect gomodules.xyz/jsonpatch/v2 v2.2.0 // indirect google.golang.org/appengine v1.6.7 // indirect - google.golang.org/genproto v0.0.0-20220118154757-00ab72f36ad5 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/ini.v1 v1.66.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect - k8s.io/api v0.23.2 // indirect - k8s.io/apiextensions-apiserver v0.23.2 // indirect - k8s.io/apimachinery v0.23.2 // indirect - k8s.io/client-go v0.23.2 // indirect - k8s.io/component-base v0.23.2 // indirect + k8s.io/apiextensions-apiserver v0.23.4 // indirect + k8s.io/component-base v0.23.4 // indirect k8s.io/klog v1.0.0 // indirect k8s.io/klog/v2 v2.30.0 // indirect k8s.io/kube-openapi v0.0.0-20220114203427-a0453230fd26 // indirect - k8s.io/utils v0.0.0-20210930125809-cb0fa318a74b // indirect + k8s.io/utils v0.0.0-20211116205334-6203023598ed // indirect mellium.im/sasl v0.2.1 // indirect sigs.k8s.io/json v0.0.0-20211020170558-c049b76a60c6 // indirect sigs.k8s.io/kustomize/pseudo/k8s v0.1.0 // indirect @@ -100,5 +101,5 @@ require ( replace ( github.com/RafaySystems/rcloud-base/components/cluster-scheduler => ./ - github.com/RafaySystems/rcloud-base/components/common => ../common + github.com/RafaySystems/rcloud-base/components/common v0.0.0-unpublished => ../common ) diff --git a/components/cluster-scheduler/go.sum b/components/cluster-scheduler/go.sum index b5c8f35..2cb545b 100644 --- a/components/cluster-scheduler/go.sum +++ b/components/cluster-scheduler/go.sum @@ -150,7 +150,9 @@ github.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2 github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgraph-io/ristretto v0.1.0/go.mod h1:fux0lOrBhrVCJd3lcTHsIJhq1T2rokOu6v9Vcb3Q9ug= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= +github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= @@ -259,7 +261,7 @@ github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29g github.com/go-openapi/runtime v0.19.15/go.mod h1:dhGWCTKRXlAfGnQG0ONViOZpjfg0m2gUt9nTQPQZuoo= github.com/go-openapi/runtime v0.19.16/go.mod h1:5P9104EJgYcizotuXhEuUrzVc+j1RiSjahULvYmlv98= github.com/go-openapi/runtime v0.19.24/go.mod h1:Lm9YGCeecBnUUkFTxPC4s1+lwrkJ0pthx8YvyjCfkgk= -github.com/go-openapi/runtime v0.21.1/go.mod h1:aQg+kaIQEn+A2CRSY1TxbM8+sT9g2V3aLc1FbIAnbbs= +github.com/go-openapi/runtime v0.23.0/go.mod h1:aQg+kaIQEn+A2CRSY1TxbM8+sT9g2V3aLc1FbIAnbbs= github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= @@ -283,7 +285,7 @@ github.com/go-openapi/strfmt v0.19.11/go.mod h1:UukAYgTaQfqJuAFlNxxMWNvMYiwiXtLs github.com/go-openapi/strfmt v0.20.0/go.mod h1:UukAYgTaQfqJuAFlNxxMWNvMYiwiXtLsF2VwmoFtbtc= github.com/go-openapi/strfmt v0.20.2/go.mod h1:43urheQI9dNtE5lTZQfuFJvjYJKPrxicATpEfZwHUNk= github.com/go-openapi/strfmt v0.21.0/go.mod h1:ZRQ409bWMj+SOgXofQAGTIo2Ebu72Gs+WaRADcS5iNg= -github.com/go-openapi/strfmt v0.21.1/go.mod h1:I/XVKeLc5+MM5oPNN7P6urMOpuLXEcNrCX/rPGuWb0k= +github.com/go-openapi/strfmt v0.21.2/go.mod h1:I/XVKeLc5+MM5oPNN7P6urMOpuLXEcNrCX/rPGuWb0k= github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= @@ -443,6 +445,7 @@ github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgf github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.2/go.mod h1:lsuH8kb4GlMdSlI4alNIBBSAt5CHJtg3i+0WuN9J5YM= github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.3 h1:I8MsauTJQXZ8df8qJvEln0kYNc3bSapuaSsEsnFdEFU= github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.3/go.mod h1:lZdb/YAJUSj9OqrCHs2ihjtoO3+xK3G53wTYXFWRGDo= github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= @@ -511,7 +514,6 @@ github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1 github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= -github.com/julienschmidt/httprouter v1.3.0 h1:U0609e9tgbseu3rBINet9P48AI/D3oJs4dN7jwJOQ1U= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4= github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA= @@ -521,6 +523,7 @@ github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.9.5/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= +github.com/klauspost/cpuid/v2 v2.0.6/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -616,6 +619,8 @@ github.com/onsi/gomega v1.17.0 h1:9Luw4uT5HTjHTN8+aNcSThgH1vdXnmdJ8xIfZ4wyTRE= github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= +github.com/ory/kratos-client-go v0.8.2-alpha.1 h1:YlKhGOSZjounlB9iY4xSWlqHbyLYkeLzlLk8ZL7/nEM= +github.com/ory/kratos-client-go v0.8.2-alpha.1/go.mod h1:dOQIsar76K07wMPJD/6aMhrWyY+sFGEagLDLso1CpsA= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= @@ -679,8 +684,10 @@ github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQD github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/sagikazarmark/crypt v0.4.0/go.mod h1:ALv2SRj7GxYV4HO9elxH9nS6M9gW+xDNxqmyJ6RfDFM= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= +github.com/segmentio/asm v1.1.0/go.mod h1:4EUJGaKsB8ImLUwOGORVsNd9vTRDeh44JGsY4aKp5I4= github.com/segmentio/asm v1.1.3 h1:WM03sfUOENvvKexOLp+pCqgb/WDjsi7EK8gIsICtzhc= github.com/segmentio/asm v1.1.3/go.mod h1:Ld3L4ZXGNcSLRg4JBsZ3//1+f/TjYl0Mzen/DQy1EJg= +github.com/segmentio/encoding v0.3.2/go.mod h1:waft2p6XI4z2pk07M0YzZV4wEiqaRvsBSyWNHxVx4gU= github.com/segmentio/encoding v0.3.3 h1:VG1HceOLwHkSDdkxshlu9pD4FftWkScmHc8RDQ+w9uM= github.com/segmentio/encoding v0.3.3/go.mod h1:n0JeuIqEQrQoPDGsjo8UNd1iA0U8d8+oHAA4E3G3OxM= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= @@ -746,6 +753,7 @@ github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802/go.mod h1 github.com/tmthrgd/go-hex v0.0.0-20190904060850-447a3041c3bc h1:9lRDQMhESg+zvGYmW5DyG0UqvY96Bu5QYsTLvCHdrgo= github.com/tmthrgd/go-hex v0.0.0-20190904060850-447a3041c3bc/go.mod h1:bciPuU6GHm1iF1pBvUfxfsH0Wmnc2VbpgvbI9ZWuIRs= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= +github.com/uptrace/bun v1.0.20/go.mod h1:Uv7z0z+7dXnUS9P5hMF0hdiM/4M+xOUHQCrZpyDrpRc= github.com/uptrace/bun v1.0.21 h1:5ek4bnrEmZo6wvY/RHt1dJNXzOPOnrfJeZMoZfZt9Io= github.com/uptrace/bun v1.0.21/go.mod h1:u+QsgCgjGFwshy3euGAN1CLEO9RMf42lga5jQ/ezYsc= github.com/uptrace/bun/dialect/pgdialect v1.0.21 h1:2MoMW1qPpAQkwjNDBmQaZBAR07qpijJsw/p6gYzwdl0= @@ -754,6 +762,8 @@ github.com/uptrace/bun/driver/pgdriver v1.0.21 h1:A6X0aGGkFguVJThhfcq6bZlPU1KAyX github.com/uptrace/bun/driver/pgdriver v1.0.21/go.mod h1:sV53gIuC3GsW/SVjobgMfyQmvhB4CgGQrpiYayuKjVs= github.com/uptrace/bun/extra/bundebug v1.0.21 h1:ILYJLqhx97I9WM+GbCYnF1QjNN63gpI2fvoj04atf8s= github.com/uptrace/bun/extra/bundebug v1.0.21/go.mod h1:n/2QqdhgXrLHDOYqezHmJzBNKf/2NNjE5xMi2fZ38iY= +github.com/urfave/negroni v1.0.0 h1:kIimOitoypq34K7TG7DUaJ9kq/N4Ofuwi1sjz0KipXc= +github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= github.com/valyala/fastjson v1.6.3 h1:tAKFnnwmeMGPbwJ7IwxcTPCNr3uIzoIj3/Fh90ra4xc= github.com/valyala/fastjson v1.6.3/go.mod h1:CLCAqky6SMuOcxStkYQvblddUtoRxhYMGLrsQns1aXY= github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw= @@ -959,6 +969,7 @@ golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210323180902-22b0adad7558/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= @@ -1304,7 +1315,6 @@ google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnD google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= -google.golang.org/grpc v1.43.0 h1:Eeu7bZtDZ2DpRCsLhUlcrLnvYaMK1Gz86a+hMVvELmM= google.golang.org/grpc v1.43.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= google.golang.org/grpc v1.44.0 h1:weqSxi/TMs1SqFRMHCtBgXRs8k3X39QIDEZ0pRcttUg= google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= @@ -1367,24 +1377,24 @@ honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= k8s.io/api v0.23.0/go.mod h1:8wmDdLBHBNxtOIytwLstXt5E9PddnZb0GaMcqsvDBpg= -k8s.io/api v0.23.2 h1:62cpzreV3dCuj0hqPi8r4dyWh48ogMcyh+ga9jEGij4= -k8s.io/api v0.23.2/go.mod h1:sYuDb3flCtRPI8ghn6qFrcK5ZBu2mhbElxRE95qpwlI= +k8s.io/api v0.23.4 h1:85gnfXQOWbJa1SiWGpE9EEtHs0UVvDyIsSMpEtl2D4E= +k8s.io/api v0.23.4/go.mod h1:i77F4JfyNNrhOjZF7OwwNJS5Y1S9dpwvb9iYRYRczfI= k8s.io/apiextensions-apiserver v0.23.0/go.mod h1:xIFAEEDlAZgpVBl/1VSjGDmLoXAWRG40+GsWhKhAxY4= -k8s.io/apiextensions-apiserver v0.23.2 h1:N6CIVAhmF0ahgFKUMDdV/AUyckhUb4nIyVPohPtdUPk= -k8s.io/apiextensions-apiserver v0.23.2/go.mod h1:9cs7avT6+GfzbB0pambTvH11wcaR85QQg4ovl9s15UU= +k8s.io/apiextensions-apiserver v0.23.4 h1:AFDUEu/yEf0YnuZhqhIFhPLPhhcQQVuR1u3WCh0rveU= +k8s.io/apiextensions-apiserver v0.23.4/go.mod h1:TWYAKymJx7nLMxWCgWm2RYGXHrGlVZnxIlGnvtfYu+g= k8s.io/apimachinery v0.23.0/go.mod h1:fFCTTBKvKcwTPFzjlcxp91uPFZr+JA0FubU4fLzzFYc= -k8s.io/apimachinery v0.23.2 h1:dBmjCOeYBdg2ibcQxMuUq+OopZ9fjfLIR5taP/XKeTs= -k8s.io/apimachinery v0.23.2/go.mod h1:zDqeV0AK62LbCI0CI7KbWCAYdLg+E+8UXJ0rIz5gmS8= +k8s.io/apimachinery v0.23.4 h1:fhnuMd/xUL3Cjfl64j5ULKZ1/J9n8NuQEgNL+WXWfdM= +k8s.io/apimachinery v0.23.4/go.mod h1:BEuFMMBaIbcOqVIJqNZJXGFTP4W6AycEpb5+m/97hrM= k8s.io/apiserver v0.23.0/go.mod h1:Cec35u/9zAepDPPFyT+UMrgqOCjgJ5qtfVJDxjZYmt4= -k8s.io/apiserver v0.23.2/go.mod h1:Kdt8gafkPev9Gfh+H6lCPbmRu42f7BfhOfHKKa3dtyU= +k8s.io/apiserver v0.23.4/go.mod h1:A6l/ZcNtxGfPSqbFDoxxOjEjSKBaQmE+UTveOmMkpNc= k8s.io/client-go v0.23.0/go.mod h1:hrDnpnK1mSr65lHHcUuIZIXDgEbzc7/683c6hyG4jTA= -k8s.io/client-go v0.23.2 h1:BNbOcxa99jxHH8mM1cPKGIrrKRnCSAfAtyonYGsbFtE= -k8s.io/client-go v0.23.2/go.mod h1:k3YbsWg6GWdHF1THHTQP88X9RhB1DWPo3Dq7KfU/D1c= +k8s.io/client-go v0.23.4 h1:YVWvPeerA2gpUudLelvsolzH7c2sFoXXR5wM/sWqNFU= +k8s.io/client-go v0.23.4/go.mod h1:PKnIL4pqLuvYUK1WU7RLTMYKPiIh7MYShLshtRY9cj0= k8s.io/code-generator v0.23.0/go.mod h1:vQvOhDXhuzqiVfM/YHp+dmg10WDZCchJVObc9MvowsE= -k8s.io/code-generator v0.23.2/go.mod h1:S0Q1JVA+kSzTI1oUvbKAxZY/DYbA/ZUb4Uknog12ETk= +k8s.io/code-generator v0.23.4/go.mod h1:S0Q1JVA+kSzTI1oUvbKAxZY/DYbA/ZUb4Uknog12ETk= k8s.io/component-base v0.23.0/go.mod h1:DHH5uiFvLC1edCpvcTDV++NKULdYYU6pR9Tt3HIKMKI= -k8s.io/component-base v0.23.2 h1:dAYmUhWIBWO762etTjBEEKtYYHi5CoQInSLtK6LM1Zs= -k8s.io/component-base v0.23.2/go.mod h1:wS9Z03MO3oJ0RU8bB/dbXTiluGju+SC/F5i660gxB8c= +k8s.io/component-base v0.23.4 h1:SziYh48+QKxK+ykJ3Ejqd98XdZIseVBG7sBaNLPqy6M= +k8s.io/component-base v0.23.4/go.mod h1:8o3Gg8i2vnUXGPOwciiYlkSaZT+p+7gA9Scoz8y4W4E= k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= @@ -1401,8 +1411,9 @@ k8s.io/kube-openapi v0.0.0-20220114203427-a0453230fd26 h1:2G24ndYyfk0l23ZrGutxb0 k8s.io/kube-openapi v0.0.0-20220114203427-a0453230fd26/go.mod h1:sX9MT8g7NVZM5lVL/j8QyCCJe8YSMW30QvGZWaCIDIk= k8s.io/utils v0.0.0-20191030222137-2b95a09bc58d/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= k8s.io/utils v0.0.0-20210802155522-efc7438f0176/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -k8s.io/utils v0.0.0-20210930125809-cb0fa318a74b h1:wxEMGetGMur3J1xuGLQY7GEQYg9bZxKn3tKo5k/eYcs= k8s.io/utils v0.0.0-20210930125809-cb0fa318a74b/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= +k8s.io/utils v0.0.0-20211116205334-6203023598ed h1:ck1fRPWPJWsMd8ZRFsWc6mh/zHp5fZ/shhbrgPUxDAE= +k8s.io/utils v0.0.0-20211116205334-6203023598ed/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= mellium.im/sasl v0.2.1 h1:nspKSRg7/SyO0cRGY71OkfHab8tf9kCts6a6oTDut0w= mellium.im/sasl v0.2.1/go.mod h1:ROaEDLQNuf9vjKqE1SrAfnsobm2YKXT1gnN1uDp1PjQ= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= @@ -1410,8 +1421,8 @@ rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.25/go.mod h1:Mlj9PNLmG9bZ6BHFwFKDo5afkpWyUISkb9Me0GnK66I= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.27/go.mod h1:tq2nT0Kx7W+/f2JVE+zxYtUhdjuELJkVpNz+x/QN5R4= -sigs.k8s.io/controller-runtime v0.11.0 h1:DqO+c8mywcZLFJWILq4iktoECTyn30Bkj0CwgqMpZWQ= -sigs.k8s.io/controller-runtime v0.11.0/go.mod h1:KKwLiTooNGu+JmLZGn9Sl3Gjmfj66eMbCQznLP5zcqA= +sigs.k8s.io/controller-runtime v0.11.1 h1:7YIHT2QnHJArj/dk9aUkYhfqfK5cIxPOX5gPECfdZLU= +sigs.k8s.io/controller-runtime v0.11.1/go.mod h1:KKwLiTooNGu+JmLZGn9Sl3Gjmfj66eMbCQznLP5zcqA= sigs.k8s.io/json v0.0.0-20211020170558-c049b76a60c6 h1:fD1pz4yfdADVNfFmcP2aBEtudwUQ1AlLnRBALr33v3s= sigs.k8s.io/json v0.0.0-20211020170558-c049b76a60c6/go.mod h1:p4QtZmO4uMYipTQNzagwnNoseA6OxSUutVw05NhYDRs= sigs.k8s.io/kustomize/pseudo/k8s v0.1.0 h1:otg4dLFc03c3gzl+2CV8GPGcd1kk8wjXwD+UhhcCn5I= diff --git a/components/cluster-scheduler/internal/fixtures/data/download.yaml b/components/cluster-scheduler/internal/fixtures/data/download.yaml index e89f958..9a48ca0 100644 --- a/components/cluster-scheduler/internal/fixtures/data/download.yaml +++ b/components/cluster-scheduler/internal/fixtures/data/download.yaml @@ -417,7 +417,7 @@ metadata: meta.helm.sh/release-namespace: rafay-system data: clusterID: {{if .Cluster.Metadata.Labels}}{{ index .Cluster.Metadata.Labels "rafay.dev/clusterID" }}{{end}} - relays: {{if .Cluster.Metadata.Annotations}}{{ index .Cluster.Metadata.Annotations "relays" }}{{end}} + relays: '{{if .Cluster.Metadata.Annotations}}{{- index .Cluster.Metadata.Annotations "relays" -}}{{end}}' --- apiVersion: apps/v1 kind: Deployment diff --git a/components/cluster-scheduler/internal/fixtures/fixtures.go b/components/cluster-scheduler/internal/fixtures/fixtures.go index 64b8c95..4e49b08 100644 --- a/components/cluster-scheduler/internal/fixtures/fixtures.go +++ b/components/cluster-scheduler/internal/fixtures/fixtures.go @@ -19,14 +19,14 @@ var Fixtures = func() http.FileSystem { fs := vfsgen۰FS{ "/": &vfsgen۰DirInfo{ name: "/", - modTime: time.Date(2022, 1, 19, 10, 7, 49, 970979989, time.UTC), + modTime: time.Date(2022, 2, 22, 6, 12, 40, 321077998, time.UTC), }, "/download.yaml": &vfsgen۰CompressedFileInfo{ name: "download.yaml", - modTime: time.Date(2022, 2, 10, 11, 10, 33, 69528254, time.UTC), - uncompressedSize: 12626, + modTime: time.Date(2022, 2, 24, 14, 37, 26, 105890380, time.UTC), + uncompressedSize: 12630, - compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x02\xff\xec\x1a\x5d\x6f\x1b\x37\xf2\x7d\x7f\x05\xa1\x97\xb4\x87\xae\x1c\x37\x97\xa2\x58\xa0\x0f\x8a\xa4\xc4\x42\x6d\x59\x90\xe4\xb4\x87\xa2\x30\x28\x72\xb4\xe2\x99\x4b\x6e\x49\xae\xac\x3d\x23\xff\xfd\x40\xee\xf7\x6a\xa5\xd8\x69\xac\x4b\x0e\xd1\x83\xbd\x4b\x0e\xe7\x7b\x86\x33\x5c\xfa\xbe\xef\xe1\x98\xbd\x07\xa5\x99\x14\x01\xda\x9e\x7b\x77\x4c\xd0\x00\x4d\x71\x04\x3a\xc6\x04\xbc\x08\x0c\xa6\xd8\xe0\xc0\x43\x88\xe3\x15\x70\x6d\x9f\x10\x22\x52\x18\x25\xb9\x1f\x73\x2c\x20\x28\x5e\x39\x28\x3f\xc2\x02\x87\xa0\x3c\x84\x04\x8e\x20\x40\x0a\xaf\x71\xea\xeb\x54\x1b\x88\xbc\x83\x14\x17\xa0\xb6\x8c\xc0\x80\x10\x99\x08\xd3\x20\x9b\xa1\xc9\x10\xf8\x1a\xe7\x23\x8e\xbd\x0e\xec\x0f\x0f\x3e\x62\x6b\x84\x05\x45\xfd\x21\x4f\xb4\x01\xd5\xbf\xca\xb1\xf5\x2f\x9d\x04\xe8\x3b\xf8\x0b\x7d\xc7\x04\x85\xdd\x61\x98\x9e\xc3\xdc\xa7\xb0\x3d\xbb\x4b\x56\xa0\x04\x18\xd0\x33\x25\xb7\x8c\x82\xea\x7d\x8f\x7a\xd7\xb3\xf1\x74\x71\x31\x79\xbb\xec\x7d\x8f\x3e\x7c\x68\x48\xa5\x81\x24\x8a\x99\xb4\x2f\x63\x10\x7a\xc3\xd6\xa6\xcf\xe4\x59\x4d\xd6\x6c\x7a\x28\x85\x81\x9d\x19\x4a\xa1\x8d\xc2\x4c\x18\xdd\x21\x77\x26\x60\xac\xd8\x96\x71\x08\x81\xfa\x9a\x10\x0f\x21\x2c\x84\x34\xd8\x30\x29\x72\x83\x30\x41\x78\x42\xa1\xaf\x80\x03\xd6\xd0\x24\xcd\x56\x91\x4f\xb8\x4c\x68\x6e\x1d\x1a\xa0\x9e\x51\x09\xf4\x3e\xbe\x54\x03\x5f\x17\xab\xfc\x0d\x0b\x37\x3e\xde\x62\xc6\xf1\x8a\x71\x66\xd2\x27\xe0\x61\x22\xe4\xe0\x0b\x49\xc1\xa7\xb0\x05\x2e\x63\x50\x8d\xe5\x95\x9a\x2d\x3c\x05\x4d\x14\x8b\x8d\x53\xe8\x8b\x4a\x7e\x84\x39\x97\xf7\x1a\x61\x42\x40\x6b\x64\xa4\x1d\x40\xf5\x79\x41\xd1\x46\x6a\xe3\x70\x22\xb4\x06\x6c\x12\x05\xda\x8d\x9b\x0d\xa0\x9c\x73\xbb\x52\x25\x02\x61\x3b\x93\xa2\x44\x83\xfa\xc1\x3d\x85\x4a\x26\x71\xf6\xb8\xd6\xef\x8a\x17\x8a\xee\x99\xd9\xe4\x38\xed\xdc\x62\x7c\xc9\x44\xb2\x73\x9e\x0f\x3b\xd3\x47\xe8\xb7\xc1\x7c\x3a\x99\xbe\x0b\x90\xd9\x30\x8d\x98\x76\xd4\x22\xa9\x0d\x52\xc0\xf1\x0e\x28\x5a\x0c\x87\x0e\x95\xde\xc8\x84\x53\xb4\x02\x4b\x96\xe6\x48\xa5\xe0\x29\x5a\x4b\x85\x48\xe6\x91\x08\xd3\x88\x09\x66\x5d\xc3\x2a\xa1\x8f\xde\x29\x2c\x8c\x63\x03\x11\x9c\xb8\xb1\x17\x6e\x6d\xa7\xbe\x89\x02\x6c\xc0\xb7\x58\x6b\x5a\xae\x87\xb0\x82\xd8\xbf\x97\xea\x8e\x4b\x6c\xfd\xa1\xcb\xd1\x7a\x9e\xd3\xf6\x85\xd4\x66\xc4\xd4\x7b\xc9\x93\x08\x66\x3c\x09\x99\x08\x90\x45\x59\x4d\x4f\x66\xc3\xf6\xd0\x14\x8c\x45\xdf\x1e\x9e\x4d\x46\x7b\x43\x52\x19\x5d\x1f\x9c\x15\x5c\x8c\x35\xc1\x1c\x67\x4e\xd0\x31\x4d\x6d\x08\x61\x26\xac\x27\x55\xd3\x40\x87\x38\xce\xcc\xcc\x40\x07\x9e\x8f\x5e\xfc\xe3\x45\x31\x75\x23\x34\x5e\xc3\x22\xd5\xc4\xf0\x72\x8e\xc2\x1a\x27\xdc\x0c\x68\x73\x25\x12\x09\xe7\x5e\xee\x05\x56\x69\x26\x8d\x21\x40\xf3\x44\x0c\xf4\x40\xa4\x9e\x73\x15\x87\x24\x4b\x40\x41\x6e\x3a\xdf\x99\x4e\x57\xe3\xd6\xeb\x6b\xaf\x11\xb6\x50\xda\x8b\x15\x93\xca\x45\x91\x23\xa4\x00\xd3\x6b\xc1\xd3\xb9\x94\xe6\x2d\xe3\x90\x43\xa3\x35\xe6\x1a\x3c\x05\x7f\x25\x4c\x01\x1d\x29\x19\x77\x70\xa9\x2c\x53\x37\x1a\x54\x07\x9f\x1a\x9c\xaf\xe6\xf9\xa6\x13\x80\x10\x19\xc5\x33\x25\xd7\x96\x6e\xa1\x16\x9d\xc4\x31\x87\x08\x84\xc1\xfc\x5d\x2e\xeb\xde\x5a\x1b\x39\x75\x1d\xe8\x2c\x93\xe3\x2c\x93\x07\xf5\x04\x1d\xe4\x7a\x7e\x1c\x70\x95\xf1\x1f\x05\xce\x44\xa8\x40\x6b\x5f\x84\x4c\xec\x3e\x61\x89\x33\x9a\xb6\x09\xfc\x71\x8b\x43\x6c\xe0\x0e\x20\x2e\xcc\xfd\xe4\x55\x49\x4c\x6d\x84\x96\x9b\x99\xef\x82\xd3\xdb\xba\x28\x2b\x6d\x50\xec\x69\x20\x68\x7b\x9b\x51\x2b\x4c\xfa\x38\x31\x1b\xa9\xd8\x7f\xb2\x24\x71\xf7\xb3\x6e\x6c\x35\xf9\xee\x36\x97\x1c\x0e\xed\x2d\x41\xb1\x61\xab\x24\x37\x3d\x8e\x59\x65\xed\x8c\x0b\x9b\x2d\xb4\x4c\x14\x81\xc6\xe0\x16\xd4\xaa\x36\xe0\x23\x21\xc5\x3c\x07\xbc\x99\x5f\x1e\x87\x6d\x91\xc9\x63\xa7\x5f\xee\xbb\xfb\x44\x4b\x55\xe9\x26\xbe\x2c\xd7\xb9\x47\x0a\x1c\xf2\xc7\x10\x8c\xfb\xcf\x99\xce\x1e\x62\x6c\xc8\xc6\x3d\x65\xaa\x77\x8f\xf7\x6e\xf0\xef\x71\x73\xa6\x0d\x36\x49\x8b\xa9\x82\xfc\x1e\xd5\x4f\xa1\x65\xb0\xbe\xe3\x60\xbe\x08\xb9\x0b\x5e\x4e\x23\xf5\x17\x23\xf2\x53\xe5\x6d\x55\xba\x4f\x0b\xd6\x37\x4c\x50\x26\xc2\x83\x31\xdb\xc8\x29\x79\x00\xfb\x4a\x72\x58\xe5\x0b\xed\xf3\x1c\xd6\x76\x5d\x21\xee\x11\x1e\x3c\x84\xf6\xf3\x45\x77\x96\xd0\xc9\xea\xdf\x40\x8c\x4b\x14\x9d\xa5\xfb\x93\x0a\xf6\xe3\x28\x8a\xed\xe2\x78\xc5\xff\x0c\x29\x31\x56\x72\x97\x3a\x7d\x1e\xcc\x8a\x96\x08\x08\xc3\x48\x4b\x8f\x6d\xcf\x91\x77\x20\x14\x6c\x19\xdc\x77\x7b\x72\x27\xe2\x0e\xfb\xb4\xf0\xe6\x66\xc8\xaa\xe0\xa3\xf8\x4f\xe7\x87\x95\xd6\x0a\x2f\x3c\x6c\xb8\xcf\xee\x9f\x35\x93\x7d\xd9\x2e\xaa\xc9\x06\x68\xc2\x99\x08\x6b\x8a\x6f\x74\x3b\x4b\xdb\x3f\x14\xb5\x21\x22\x1c\x6b\xdd\x6a\x19\x5c\x9f\xe0\xa8\xa0\xbc\xd8\x40\xb1\xa4\xda\xf5\x10\xfd\xdc\x8a\xb3\x1c\xc1\xd0\xae\x3f\xd8\x58\x16\x15\x2b\x51\xcc\xfa\x32\xf7\xb6\x98\x27\x10\xa0\xf3\x97\xc5\xef\x53\x3c\xe8\x68\x70\x71\xc0\x14\x94\x0f\x1c\x88\x5d\x9c\xd9\xec\x88\xa7\x1c\x08\xc0\x5e\x6f\x3f\x2a\x88\x14\x6b\x16\x46\x38\x3e\x90\xa5\xcb\xfd\xe1\xbe\x4c\xd7\xb5\x0d\xa5\xb6\x55\x54\xe9\x3c\xdf\x65\x9e\x48\xfe\xe8\x5e\xb1\x47\xe7\x51\xc8\x61\x0b\xc2\x7c\xb6\x18\x7f\x4c\x70\x77\x19\xea\xd9\x22\xbb\x23\xa4\x3b\x1d\xe5\xcb\x0e\x6e\x1c\x33\xd8\x19\x10\xf6\x4d\xef\x27\xd6\x44\x1b\x19\x15\x05\xf2\x08\xd6\x4c\x30\x2b\x59\x87\x05\xaa\xe2\xb2\xbf\x5f\x9f\xe8\x18\x88\x05\x25\x52\x6c\x73\xca\xae\xa3\x77\x67\x05\x10\xa6\x01\x9a\x4a\x61\xb5\x19\x66\xda\xef\xaa\x70\x1c\x81\x6c\x59\xfb\xcc\xcf\x8e\xd9\x48\xf9\xb5\x39\x7e\xc9\xf2\x43\x95\x98\x27\x0a\xf3\xa0\x59\x8e\x23\x9b\xa2\x94\x99\x56\x68\x7d\xa4\x44\x3e\xc3\x44\x98\x70\xac\x6a\x4b\x3c\x84\x34\x91\xb6\x91\x2c\xf1\xd3\xcc\xb7\x75\x71\xa6\xe5\xe7\xaa\xd8\xfe\x98\x21\x01\xb5\x05\x9a\xf7\xf9\x99\xb4\x52\xe1\x10\xea\x23\x64\x03\x11\x0e\x8a\x03\x95\x18\xc4\x60\x36\x79\xff\x6a\xd1\x18\x46\x28\x56\x32\x06\x95\x9d\x0d\xa0\xf2\x57\x33\x63\x6d\xb4\x68\x77\xb5\x51\x99\xdb\x17\x3f\xa7\xb4\xc7\x00\xd6\x6d\xdb\x06\x96\xce\x97\x6b\x13\x85\x65\x3f\x0a\x88\xd0\xce\xaf\x0e\xcc\xfc\x58\x81\xd3\x8f\x9f\x88\x3b\x21\xef\x85\xbf\x66\xc0\xa9\xae\xe9\x26\xc7\xef\xd2\xd2\xf3\x51\xd8\xc3\xa5\x93\x55\x23\x8f\xd5\x98\x40\x0f\x1f\xbc\x8a\x1f\x5b\xc9\xc4\x06\xe8\xb4\xed\x97\xbd\x5e\xc3\xe9\xdc\x2b\x91\x82\xb2\xec\xf0\x13\xfd\xf1\xa7\x97\xf9\x02\xd0\xf7\x85\xf7\xd8\xc1\x67\x0b\xcd\xa2\xff\x39\x55\x60\x2e\x33\x7a\xad\xb0\xcc\x47\xf7\x82\xb2\xd6\x29\x76\x86\xa4\xe1\xad\x90\x34\x25\xfa\x6f\x01\xf9\x2d\x20\xbf\xd6\x80\x3c\x69\x34\x76\x84\x62\x67\x1c\x1e\x0e\xc2\x8e\x18\xfc\x16\x80\xdf\x02\xf0\xb4\x01\x58\xc5\x9a\xeb\x5b\xae\x70\xdc\x11\x5c\x59\x5f\x9d\x75\x36\x47\x0a\xe1\xe6\xa7\x25\x1c\xc7\xfd\xe6\xe7\xbc\xe2\x0b\xe2\x2a\x0d\xd0\x05\xf0\xa8\xeb\x13\xa6\x25\xde\xdf\x00\x8f\xfa\x7a\x73\x96\x7f\xd4\xf2\x0b\x8f\xf7\x99\x58\x2b\x7c\x1c\xae\x8b\xb1\x42\x9a\x8d\x31\xf1\xcc\xca\x12\xa0\xde\xc3\x03\x5b\x57\x5f\x7e\x17\x31\x90\xbe\x9b\xca\xf4\xf0\xe1\xc3\xc3\x03\x3a\x06\xd0\x1f\x0b\xbc\xe2\x40\x91\x85\xf4\x8f\xc0\x5d\x14\x34\x91\x6f\x41\x41\xd0\xf2\x5f\x2f\x67\x49\xff\x2f\x78\xd2\x47\x98\x12\xf2\xd4\x1c\x4d\xe5\x11\x76\x9c\xfb\x0d\x12\xb3\x39\x21\x43\xb3\x82\x66\x37\x4b\x2b\x29\x8d\xdd\x42\xe2\xe1\xe0\x84\x4c\xbd\xa9\xa8\x76\xb3\xe5\xbe\x6f\x4e\x84\xbb\x7b\x00\x25\xf4\x67\xe5\x10\x1d\x67\x71\xd0\xc9\x41\x17\xb7\x9f\x94\x89\x14\x70\x9c\xfa\x38\x04\x61\xfe\x0f\xf2\x51\x5e\x6c\x4c\x46\x01\x6a\x1a\xa8\x75\x11\x25\xb3\xcf\xa3\xef\xaa\x94\x68\x7b\xa8\xd4\xb7\x3b\x4b\xe2\x38\xd5\x07\x49\x0d\x2a\xd1\x8f\xd2\xab\xc1\xa1\x5e\x86\xb3\x4e\x67\xbf\xc2\x8b\x75\x55\xd1\x8d\x20\xe6\x32\x8d\xa0\xf3\x7a\x4f\xcd\xb8\x5f\xa3\x55\x8b\x2a\x45\xbb\xc3\x2a\xa9\x72\x52\xd8\x90\xcd\x65\x8d\x63\xc7\x73\x5b\x58\x05\x31\x67\x04\xeb\x00\x9d\x67\x09\xcf\x7d\x94\x1e\x01\xa6\x9c\x09\x58\x80\xdd\xda\xed\xe4\xcf\x2f\x5f\x7a\x08\x19\x88\x62\x8e\x0d\x54\xc2\xd4\x4b\x29\xde\x20\xd6\x49\xae\x59\x52\xe1\xb5\x2b\xac\xd3\x6a\x89\x90\x14\x06\x7b\xa3\x96\xcd\xfc\xfe\x41\x62\xcb\xb9\x45\x79\x8a\x3d\x09\x85\x2c\x87\xc7\x3b\x20\xee\x6a\x4a\xb3\xa0\xb2\x38\x17\xb9\x6a\x96\xa0\xa2\x56\xbd\x65\x2b\x5b\xa7\xab\xf1\xce\x16\x55\xba\x32\x56\x1b\xea\x0e\xd2\xa0\x75\x51\x48\xea\x0e\x48\x57\xeb\x2a\x6c\x2d\x81\x26\xa2\x13\xc0\x1d\x74\x77\x92\xc9\x48\x71\x26\x92\xdd\x63\x99\xc0\x8a\x6c\x9e\x87\x0d\x1c\xd1\x9f\xfe\x99\xcf\x1a\x50\x11\x13\xce\x99\xdf\x29\x4c\x60\x06\x8a\x49\x5a\x79\xc8\x4b\xaf\x28\xe7\x6b\x47\xff\xd3\x63\xa7\xfd\x79\xf9\xd9\x38\xfe\x9c\xee\x1d\x9f\x66\x97\xbb\x98\x29\x6f\xdb\x94\xfc\x16\x1d\x89\x06\xe3\x73\x16\x31\x53\x19\x83\x45\xae\x15\xe9\x29\x08\x99\x36\x2a\xcd\xda\x2a\x1f\x68\x08\x7d\x01\xe6\xcc\xbd\x9e\xad\x12\x9d\xae\xe4\x2e\x38\xef\xbf\x7a\xd5\x2b\xd7\x12\x19\x45\xd8\xe6\x8c\x3f\x7a\x7a\xd3\xfb\x01\xf5\x7c\x62\xff\x26\x8e\x04\xf2\x05\xfa\xe9\xf5\xeb\x57\x3f\xf5\xfe\x2c\x17\xe8\xe6\x95\xba\xba\x3a\xab\x1b\x4d\x8d\xca\x9c\x1c\x94\xa5\x1d\x2e\x75\x61\x1e\x1e\x50\x7f\x24\xef\x05\x97\x98\x8e\x6c\x46\x9c\x5b\xe0\x81\x85\x9d\x58\x10\x94\xed\xc5\x79\x6c\xa9\xd0\x16\xde\x3d\xdf\x8f\x24\x85\x5f\x08\x67\x20\x8c\x93\xc6\xe7\x32\xf4\x39\x6c\x81\xff\xf2\xaa\x26\x05\x88\x6d\xc5\x79\xc1\xce\xec\x7a\x74\x3b\x1d\x5c\x8d\xbd\x96\xcf\xbc\x55\x32\x6a\xba\x8d\xeb\x3f\xf2\xa3\xf7\xbd\xf1\x19\xb6\x35\x54\x91\x2f\xfa\x16\xf7\x41\x52\x8b\xd9\x60\xf8\x0c\xf4\xaa\xd3\xe5\x3a\xd1\xab\xc1\xef\xb7\xa3\xc9\xe0\x72\xf1\x71\x82\xa4\xa8\x0e\x7e\x85\xb4\x83\xee\x91\x32\xa1\xfe\x73\xe1\x1b\xe1\xdd\x88\x61\xde\xce\x1d\xd2\x7d\x82\x73\xfd\x7b\xbd\x89\x2b\x78\xb5\x7c\x5e\xdf\x2c\x6f\x67\xf3\xeb\xdf\xff\xf5\x99\xf8\x6d\x35\x58\x7b\x9c\x56\x5d\xc2\xdf\xe0\xf5\x76\x70\xb3\xbc\x18\x4f\x97\x93\xe1\x60\x39\xb9\x9e\x9e\x88\xf5\xb2\x78\x7f\x1a\xe7\x17\xcb\xe5\xec\xe4\x2a\xfe\x04\x0d\x5b\x3e\x17\x5f\x85\x2f\x4c\xaf\x4f\xca\x66\xde\x43\x3e\x8d\xc7\x37\xd7\xd7\xcb\xc5\x72\x3e\x98\xdd\x0e\x07\xb7\xc3\xf1\x7c\x79\x22\x66\x6b\xed\xdc\xd3\x18\x1e\x5c\x5e\x5e\xff\x76\x3b\x99\x2e\xc6\xc3\x9b\xf9\xf8\xb6\xe4\xff\x44\x7c\x77\xf7\x7b\x8f\x13\x21\xbb\x63\x78\x65\x77\xfb\x46\xe9\xe1\x3f\x2e\x87\x46\x76\x61\x96\xe0\xcf\xc0\x90\xb3\x16\xc8\xde\xf1\x56\x51\x3e\x82\x36\xad\x4a\x87\xc4\x89\xbb\x6b\x10\x35\xf1\x43\x24\x55\x1a\xa0\xf3\x1f\x7f\xbe\x62\xb5\x99\xac\xc2\xe8\xc0\xf0\xfa\x10\x86\xd7\xe7\x3f\x5e\x31\x37\xe2\xd5\x25\x3f\xb6\xe7\xb7\x05\x2e\x8d\x55\xa7\x7b\x68\xd5\x7f\x03\x00\x00\xff\xff\xb4\xee\xf7\x9e\x52\x31\x00\x00"), + compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x02\xff\xec\x1a\x5d\x6f\xdb\x38\xf2\x5d\xbf\x82\xd0\x4b\x76\x0f\x2b\xa7\xd9\x5e\x8b\x42\xc0\x3e\xb8\x76\xda\x18\x9b\x38\x86\xed\x74\xf7\xb0\x58\x04\x34\x39\x96\x79\xa1\x48\x2d\x49\x39\xf6\x05\xfd\xef\x07\x52\xdf\xb2\xec\x26\xdd\xc6\xd7\x1e\xea\x87\x44\x22\x87\xf3\x3d\xc3\x19\x8a\x41\x10\x78\x38\x61\x1f\x40\x69\x26\x45\x88\xd6\x67\xde\x1d\x13\x34\x44\x63\x1c\x83\x4e\x30\x01\x2f\x06\x83\x29\x36\x38\xf4\x10\xe2\x78\x01\x5c\xdb\x27\x84\x88\x14\x46\x49\x1e\x24\x1c\x0b\x08\x8b\x57\x0e\x2a\x88\xb1\xc0\x11\x28\x0f\x21\x81\x63\x08\x91\xc2\x4b\xbc\x0d\xf4\x56\x1b\x88\xbd\xbd\x14\x67\xa0\xd6\x8c\x40\x9f\x10\x99\x0a\xd3\x20\x9b\xa1\xc9\x10\x04\x1a\xe7\x23\x8e\xbd\x0e\xec\x0f\x0f\x01\x62\x4b\x84\x05\x45\xbd\x01\x4f\xb5\x01\xd5\xbb\xca\xb1\xf5\x2e\x9d\x04\xe8\x07\xf8\x0b\xfd\xc0\x04\x85\xcd\x7e\x18\xdf\x61\xee\x51\x58\x9f\xde\xa5\x0b\x50\x02\x0c\xe8\x89\x92\x6b\x46\x41\xf9\x3f\x22\xff\x7a\x72\x3e\x9e\x5d\x8c\xde\xcd\xfd\x1f\xd1\xc7\x8f\x0d\xa9\x34\x90\x54\x31\xb3\xed\xc9\x04\x84\x5e\xb1\xa5\xe9\x31\x79\x5a\x93\x35\x9b\x1e\x48\x61\x60\x63\x06\x52\x68\xa3\x30\x13\x46\x77\xc8\x9d\x09\x98\x28\xb6\x66\x1c\x22\xa0\x81\x26\xc4\x43\x08\x0b\x21\x0d\x36\x4c\x8a\xdc\x20\x4c\x10\x9e\x52\xe8\x29\xe0\x80\x35\x34\x49\xb3\x45\x1c\x10\x2e\x53\x9a\x5b\x87\x86\xc8\x37\x2a\x05\xff\xd3\x4b\x35\xf0\x65\xb1\x2a\x58\xb1\x68\x15\xe0\x35\x66\x1c\x2f\x18\x67\x66\xfb\x04\x3c\x4c\x44\x1c\x02\x21\x29\x04\x14\xd6\xc0\x65\x02\xaa\xb1\xbc\x52\xb3\x85\xa7\xa0\x89\x62\x89\x71\x0a\x3d\xa9\xe4\x47\x98\x73\x79\xaf\x11\x26\x04\xb4\x46\x46\xda\x01\x54\x9f\x17\x14\xad\xa4\x36\x0e\x27\x42\x4b\xc0\x26\x55\xa0\xdd\xb8\x59\x01\xca\x39\xb7\x2b\x55\x2a\x10\xb6\x33\x5b\x94\x6a\x50\x3f\xb9\xa7\x48\xc9\x34\xc9\x1e\x97\xfa\x7d\xf1\x42\xd1\x3d\x33\xab\x1c\xa7\x9d\x9b\x9d\x5f\x32\x91\x6e\x9c\xe7\xc3\xc6\xf4\x10\xfa\xad\x3f\x1d\x8f\xc6\xef\x43\x64\x56\x4c\x23\xa6\x1d\xb5\x58\x6a\x83\x14\x70\xbc\x01\x8a\x66\x83\x81\x43\xa5\x57\x32\xe5\x14\x2d\xc0\x92\xa5\x39\x52\x29\xf8\x16\x2d\xa5\x42\x24\xf3\x48\x84\x69\xcc\x04\xb3\xae\x61\x95\xd0\x43\xef\x15\x16\xc6\xb1\x81\x08\x4e\xdd\xd8\x89\x5b\xdb\xa9\x6f\xa2\x00\x1b\x08\x2c\xd6\x9a\x96\xeb\x21\xac\x20\x09\xee\xa5\xba\xe3\x12\x5b\x7f\xe8\x72\x34\xdf\x73\xda\xbe\x90\xda\x0c\x99\xfa\x20\x79\x1a\xc3\x84\xa7\x11\x13\x21\xb2\x28\xab\xe9\xd1\x64\xd0\x1e\x1a\x83\xb1\xe8\xdb\xc3\x93\xd1\x70\x67\x48\x2a\xa3\xeb\x83\x93\x82\x8b\x73\x4d\x30\xc7\x99\x13\x74\x4c\x53\x1b\x42\x98\x09\xeb\x49\xd5\x34\xd0\x01\x4e\x32\x33\x33\xd0\xa1\x17\xa0\x93\x7f\x9c\x14\x53\x37\x42\xe3\x25\xcc\xb6\x9a\x18\x5e\xce\x51\x58\xe2\x94\x9b\x3e\x6d\xae\x44\x22\xe5\xdc\xcb\xbd\xc0\x2a\xcd\x6c\x13\x08\xd1\x34\x15\x7d\xdd\x17\x5b\xcf\xb9\x8a\x43\x92\x25\xa0\x30\x37\x5d\xe0\x4c\xa7\xab\x71\xeb\xf5\xb5\xd7\x18\x5b\x28\xed\x25\x8a\x49\xe5\xa2\xc8\x11\x52\x80\xe9\xb5\xe0\xdb\xa9\x94\xe6\x1d\xe3\x90\x43\xa3\x25\xe6\x1a\x3c\x05\x7f\xa5\x4c\x01\x1d\x2a\x99\x74\x70\xa9\x2c\x53\x37\x1a\x54\x07\x9f\x1a\x9c\xaf\xe6\xf9\xa6\x13\x80\x10\x19\x27\x13\x25\x97\x96\x6e\xa1\x16\x9d\x26\x09\x87\x18\x84\xc1\xfc\x7d\x2e\xeb\xce\x5a\x1b\x39\x75\x1d\xe8\x2c\x93\xe3\x2c\x93\x87\xf5\x04\x1d\xe6\x7a\x7e\x1c\x70\x95\xf1\x1f\x05\xce\x44\xa4\x40\xeb\x40\x44\x4c\x6c\x3e\x63\x89\x33\x9a\xb6\x09\xfc\x71\x8b\x23\x6c\xe0\x0e\x20\x29\xcc\xfd\xe4\x55\x69\x42\x6d\x84\x96\x9b\x59\xe0\x82\xd3\x5b\xbb\x28\x2b\x6d\x50\xec\x69\x20\x68\x7b\x9b\x51\x0b\x4c\x7a\x38\x35\x2b\xa9\xd8\x7f\xb2\x24\x71\xf7\x46\x37\xb6\x9a\x7c\x77\x9b\x4a\x0e\xfb\xf6\x96\xb0\xd8\xb0\x55\x9a\x9b\x1e\x27\xac\xb2\x76\xc6\x85\xcd\x16\x5a\xa6\x8a\x40\x63\x70\x0d\x6a\x51\x1b\x08\x90\x90\x62\x9a\x03\xde\x4c\x2f\x0f\xc3\xb6\xc8\xe4\xb1\xd3\x2b\xf7\xdd\x5d\xa2\xa5\xaa\x74\x13\x5f\x96\xeb\xdc\x23\x05\x0e\xf9\x63\x04\xc6\xfd\xe7\x4c\x67\x0f\x09\x36\x64\xe5\x9e\x32\xd5\xbb\xc7\x7b\x37\xf8\xf7\xb8\x39\xd5\x06\x9b\xb4\xc5\x54\x41\x7e\x87\xea\xe7\xd0\x32\x58\xdf\x71\x30\x5f\x85\xdc\x05\x2f\xc7\x91\xfa\xab\x11\xf9\xa9\xf2\xb6\x2a\xdd\xa7\x05\xeb\x5b\x26\x28\x13\xd1\xde\x98\x6d\xe4\x94\x3c\x80\x03\x25\x39\x2c\xf2\x85\xf6\x79\x0a\x4b\xbb\xae\x10\xf7\x00\x0f\x1e\x42\xbb\xf9\xa2\x3b\x4b\xe8\x74\xf1\x6f\x20\xc6\x25\x8a\xce\xd2\xfd\x49\x05\xfb\x61\x14\xc5\x76\x71\xb8\xe2\x7f\x86\x94\x98\x28\xb9\xd9\x3a\x7d\xee\xcd\x8a\x96\x08\x08\xc3\x48\x4b\x8f\x6d\xcf\x91\x77\x20\x14\xac\x19\xdc\x77\x7b\x72\x27\xe2\x0e\xfb\xb4\xf0\xe6\x66\xc8\xaa\xe0\x83\xf8\x8f\xe7\x87\x95\xd6\x0a\x2f\xdc\x6f\xb8\x2f\xee\x9f\x35\x93\x7d\xdd\x2e\xaa\xc9\x0a\x68\xca\x99\x88\x6a\x8a\x6f\x74\x3b\x73\xdb\x3f\x14\xb5\x21\x22\x1c\x6b\xdd\x6a\x19\x5c\x9f\xe0\xa8\xa0\xbc\xd8\x40\x89\xa4\xda\xf5\x10\xbd\xdc\x8a\x93\x1c\xc1\xc0\xae\xdf\xdb\x58\x16\x15\x2b\x51\xcc\xfa\x32\xf7\xd6\x98\xa7\x10\xa2\xb3\x17\xc5\xef\x73\x3c\xe8\x60\x70\x71\xc0\x14\x54\x00\x1c\x88\x5d\x9c\xd9\xec\x80\xa7\xec\x09\x40\xdf\xdf\x8d\x0a\x22\xc5\x92\x45\x31\x4e\xf6\x64\xe9\x72\x7f\xb8\x2f\xd3\x75\x6d\x43\xa9\x6d\x15\x55\x3a\xcf\x77\x99\x27\x92\x3f\xb8\x57\xec\xd0\x79\x14\x72\x58\x83\x30\x5f\x2c\xc6\x1f\x13\xdc\x5d\x86\x7a\xb6\xc8\xee\x08\xe9\x4e\x47\xf9\xba\x83\x1b\x27\x0c\x36\x06\x84\x7d\xd3\xbb\x89\x35\xd5\x46\xc6\x45\x81\x3c\x84\x25\x13\xcc\x4a\xd6\x61\x81\xaa\xb8\xec\xed\xd6\x27\x3a\x01\x62\x41\x89\x14\xeb\x9c\xb2\xeb\xe8\xdd\x59\x01\x44\xdb\x10\x8d\xa5\xb0\xda\x8c\x32\xed\x77\x55\x38\x8e\x40\xb6\xac\x7d\xe6\x67\xc7\x6c\xa4\xfc\xda\x1c\xbf\x64\xf9\xa1\x4a\xc2\x53\x85\x79\xd8\x2c\xc7\x91\x4d\x51\xca\x8c\x2b\xb4\x01\x52\x22\x9f\x61\x22\x4a\x39\x56\xb5\x25\x1e\x42\x9a\x48\xdb\x48\x96\xf8\x69\xe6\xdb\xba\x38\xd3\x0a\x72\x55\xac\x7f\xce\x90\x80\x5a\x03\xcd\xfb\xfc\x4c\x5a\xa9\x70\x04\xf5\x11\xb2\x82\x18\x87\xc5\x81\x4a\x02\xa2\x3f\x19\x7d\x78\x39\x6b\x0c\x23\x94\x28\x99\x80\xca\xce\x06\x50\xf9\xab\x99\xb1\x36\x5a\xb4\xbb\xda\xa8\xcc\xed\x8b\x9f\x53\xda\x63\x00\xeb\xb6\x6d\x03\x4b\xe7\xcb\xb5\x89\xc2\xb2\x9f\x04\x44\x68\x13\x54\x07\x66\x41\xa2\xc0\xe9\x27\x48\xc5\x9d\x90\xf7\x22\x58\x32\xe0\x54\xd7\x74\x93\xe3\x77\x69\xe9\xf9\x28\xec\xe0\xd2\xe9\xa2\x91\xc7\x6a\x4c\xa0\x87\x8f\x5e\xc5\x8f\xad\x64\x12\x03\x74\xdc\xf6\x4b\xdf\x6f\x38\x9d\x7b\x25\x52\x50\x96\x1d\x7e\xa2\x3f\xfe\xf4\x32\x5f\x00\xfa\xa1\xf0\x1e\x3b\xf8\x6c\xa1\x59\xf4\x3f\xc7\x0a\xcc\x79\x46\xaf\x15\x96\xf9\xe8\x4e\x50\xd6\x3a\xc5\xce\x90\x34\xbc\x15\x92\xa6\x44\xff\x3d\x20\xbf\x07\xe4\xb7\x1a\x90\x47\x8d\xc6\x8e\x50\xec\x8c\xc3\xfd\x41\xd8\x11\x83\xdf\x03\xf0\x7b\x00\x1e\x37\x00\xab\x58\x73\x7d\xcb\x15\x4e\x3a\x82\x2b\xeb\xab\xb3\xce\xe6\x40\x21\xdc\xfc\xb4\x84\x93\xa4\xd7\xfc\x9c\x57\x7c\x41\x5c\x6c\x43\x74\x01\x3c\xee\xfa\x84\x69\x89\xf7\x56\xc0\xe3\x9e\x5e\x9d\xe6\x1f\xb5\x82\xc2\xe3\x03\x26\x96\x0a\x1f\x86\xeb\x62\xac\x90\x66\x65\x4c\x32\xb1\xb2\x84\xc8\x7f\x78\x60\xcb\xea\xcb\xef\x2c\x01\xd2\x73\x53\x99\x1e\x3e\x7e\x7c\x78\x40\x87\x00\x7a\xe7\x02\x2f\x38\x50\x64\x21\x83\x03\x70\x17\x05\x4d\x14\x58\x50\x10\xb4\xfc\xe7\xe7\x2c\xe9\xff\x05\x4f\xfa\x00\x53\x42\x1e\x9b\xa3\xb1\x3c\xc0\x8e\x73\xbf\x7e\x6a\x56\x47\x64\x68\x52\xd0\xec\x66\x69\x21\xa5\xb1\x5b\x48\x32\xe8\x1f\x91\xa9\xb7\x15\xd5\x6e\xb6\xdc\xf7\xcd\x91\x70\x77\x0f\xa0\x84\xfe\xa2\x1c\xa2\xc3\x2c\xf6\x3b\x39\xe8\xe2\xf6\xb3\x32\x91\x02\x8e\xb7\x01\x8e\x40\x98\xff\x83\x7c\x94\x17\x1b\xa3\x61\x88\x9a\x06\x6a\x5d\x44\xc9\xec\xf3\xe8\xbb\x2a\x25\x5a\x1f\x95\xfa\x76\x67\x49\x1c\x6f\x75\x88\x4e\xf6\xd0\xea\x57\xb2\x67\x8e\xb8\x8f\x62\x0d\x10\xf9\x19\x56\xbf\x66\xe1\x93\x8e\x2a\x2f\xd1\x55\x55\x37\x84\x84\xcb\x6d\x0c\x9d\x57\x7c\x6a\x06\xfe\x16\x2d\x5b\x54\x2a\xda\x1d\x58\x49\x95\x93\xc2\x86\xac\x2e\x6b\x1c\x3b\x9e\xdb\xc2\x2a\x48\x38\x23\x58\x87\xe8\x2c\x4b\x7a\xee\xc3\xf4\x10\x30\xe5\x4c\xc0\x0c\xec\xf6\x6e\x27\xdf\xbc\x78\xe1\x21\x64\x20\x4e\x38\x36\x50\x09\x53\x2f\xa7\x78\x83\x58\x27\xb9\x66\x59\x85\x97\xae\xb8\xde\x56\x4b\x84\xa4\xd0\xdf\x19\xb5\x6c\xe6\x77\x10\x52\x5b\xd2\xcd\xca\x93\xec\x51\x24\x64\x39\x7c\xbe\x01\xe2\xae\xa7\x34\x8b\x2a\x8b\x73\x96\xab\x66\x0e\x2a\x6e\xd5\x5c\xb6\xba\x75\xba\x3a\xdf\xd8\xc2\x4a\x57\xc6\x6a\x43\xdd\xc1\x36\x6c\x5d\x16\x92\xba\x03\xd2\xd5\xbb\x0a\x5b\x4b\xa0\x91\xe8\x04\x70\x87\xdd\x9d\x64\x32\x52\x9c\x89\x74\xf3\x58\x26\xb0\x22\xab\xe7\x61\x03\xc7\xf4\xf5\x3f\xf3\x59\x03\x2a\x66\xc2\x39\xf3\x7b\x85\x09\x4c\x40\x31\x49\x2b\x0f\x79\xe1\x15\x25\x7d\xed\xf8\x7f\x7c\xe8\xc4\x3f\x2f\x41\x1b\x47\xa0\xe3\x9d\x23\xd4\xec\x82\x17\x33\xe5\x8d\x9b\x92\xdf\xa2\x2b\xd1\x60\x02\xce\x62\x66\x2a\x63\xb0\xd8\xb5\x23\xbe\x82\x88\x69\xa3\xb6\x59\x6b\x15\x00\x8d\xa0\x27\xc0\x9c\xba\xd7\xd3\x45\xaa\xb7\x0b\xb9\x09\xcf\x7a\x2f\x5f\xfa\xe5\x5a\x22\xe3\x18\xdb\x9c\xf1\x87\xaf\x57\xfe\x4f\xc8\x0f\x88\xfd\x9b\x3a\x12\x28\x10\xe8\xf5\xab\x57\x2f\x5f\xfb\x7f\x96\x0b\x74\xf3\x5a\x5d\x5d\x9d\xd5\xad\xa6\x46\x75\x4e\xf6\xca\xd2\x0e\x97\xba\x30\x0f\x0f\xa8\x37\x94\xf7\x82\x4b\x4c\x87\x36\x27\x4e\x2d\x70\xdf\xc2\x8e\x2c\x08\xca\xf6\xe3\x3c\xb6\x54\x64\x8b\x6f\x3f\x08\x62\x49\xe1\x17\xc2\x19\x08\xe3\xa4\x09\xb8\x8c\x02\x0e\x6b\xe0\xbf\xbc\xac\x49\x01\x62\x5d\x71\x5e\xb0\x33\xb9\x1e\xde\x8e\xfb\x57\xe7\x5e\xcb\x67\xde\x29\x19\x37\xdd\xc6\xf5\x20\xf9\xf1\xfb\xce\xf8\x04\xdb\x3a\xaa\xc8\x17\x3d\x8b\x7b\x2f\xa9\xd9\xa4\x3f\x78\x06\x7a\xd5\x09\x73\x9d\xe8\x55\xff\xf7\xdb\xe1\xa8\x7f\x39\xfb\x34\x41\x52\x54\x08\xbf\xc2\xb6\x83\xee\x81\x52\xa1\xfe\x73\xe1\x1b\xe3\xcd\x90\x61\xde\xce\x1d\xd2\x7d\x86\x73\x3d\x7c\xbd\x91\x2b\x78\xb5\x7c\x5e\xdf\xcc\x6f\x27\xd3\xeb\xdf\xff\xf5\x85\xf8\x6d\x35\x59\x3b\x9c\x56\x9d\xc2\xdf\xe0\xf5\xb6\x7f\x33\xbf\x38\x1f\xcf\x47\x83\xfe\x7c\x74\x3d\x3e\x12\xeb\x65\x01\xff\x34\xce\x2f\xe6\xf3\xc9\xd1\x55\xfc\x19\x1a\xb6\x7c\xce\xbe\x09\x5f\x18\x5f\x1f\x95\xcd\xbc\x8f\x7c\x1a\x8f\x6f\xaf\xaf\xe7\xb3\xf9\xb4\x3f\xb9\x1d\xf4\x6f\x07\xe7\xd3\xf9\x91\x98\xad\xb5\x74\x4f\x63\xb8\x7f\x79\x79\xfd\xdb\xed\x68\x3c\x3b\x1f\xdc\x4c\xcf\x6f\x4b\xfe\x8f\xc4\x77\x77\xcf\xf7\x38\x11\xb2\x7b\x86\x57\x76\xb7\x6f\x94\x1e\xc1\xe3\x72\x68\x6c\x17\x66\x09\xfe\x14\x0c\x39\x6d\x81\xec\x1c\x71\x15\xe5\x23\x68\xd3\xaa\x74\x48\x92\xba\xfb\x06\x71\x13\x3f\xc4\x52\x6d\x43\x74\xf6\xf3\x9b\x2b\x56\x9b\xc9\x2a\x8c\x0e\x0c\xaf\xf6\x61\x78\x75\xf6\xf3\x15\x73\x23\x5e\x5d\xf2\x43\x7b\x7e\x5b\xe0\xd2\x58\x75\xba\xfb\x56\xfd\x37\x00\x00\xff\xff\xd0\x90\x58\x84\x56\x31\x00\x00"), }, } fs["/"].(*vfsgen۰DirInfo).entries = []os.FileInfo{ diff --git a/components/cluster-scheduler/main.go b/components/cluster-scheduler/main.go index b273b3a..bbf662c 100644 --- a/components/cluster-scheduler/main.go +++ b/components/cluster-scheduler/main.go @@ -16,7 +16,6 @@ import ( "github.com/RafaySystems/rcloud-base/components/cluster-scheduler/pkg/service" adminrpc "github.com/RafaySystems/rcloud-base/components/cluster-scheduler/proto/rpc" "github.com/RafaySystems/rcloud-base/components/cluster-scheduler/server" - "github.com/RafaySystems/rcloud-base/components/common/pkg/auth/interceptors" authv3 "github.com/RafaySystems/rcloud-base/components/common/pkg/auth/v3" "github.com/RafaySystems/rcloud-base/components/common/pkg/gateway" grpcutil "github.com/RafaySystems/rcloud-base/components/common/pkg/grpc" @@ -307,20 +306,18 @@ func runRPC(wg *sync.WaitGroup, ctx context.Context) { var opts []grpc.ServerOption if !dev { _log.Infow("adding auth interceptor") + ac := authv3.NewAuthContext() + o := authv3.Option{ExcludeRPCMethods: []string{"/rafay.dev.scheduler.rpc.Cluster/RegisterCluster"}} opts = append(opts, grpc.UnaryInterceptor( - interceptors.NewAuthInterceptorWithOptions( - interceptors.WithAuthPool(authPool), - interceptors.WithExclude("POST", "/infra/v3/scheduler/cluster/register"), - ), - )) - defer authPool.Close() - } else { - opts = append(opts, grpc.UnaryInterceptor( - interceptors.NewAuthInterceptorWithOptions(interceptors.WithDummy()), + ac.NewAuthUnaryInterceptor(o), )) } + s := grpc.NewServer(opts...) + if err != nil { + _log.Fatalw("unable to create grpc server", "error", err) + } - s, err := grpcutil.NewServer(opts...) + s, err = grpcutil.NewServer(opts...) if err != nil { _log.Fatalw("unable to create grpc server", "error", err) } diff --git a/components/common/pkg/query/options.go b/components/common/pkg/query/options.go index 3bc659d..9cccfdd 100644 --- a/components/common/pkg/query/options.go +++ b/components/common/pkg/query/options.go @@ -330,7 +330,7 @@ func Delete(q *bun.SelectQuery, opts *commonv3.QueryOptions) (*bun.UpdateQuery, return nil, err } - uq := q.NewUpdate() + uq := q.DB().NewUpdate() if opts.Deleted { uq = uq.Set(nameQ, fmt.Sprintf("%s-%s", opts.Name, random.NewRandomString(10))) } diff --git a/components/relay/go.mod b/components/relay/go.mod index 0bca88f..a1b8c36 100644 --- a/components/relay/go.mod +++ b/components/relay/go.mod @@ -23,10 +23,10 @@ require ( golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac google.golang.org/grpc v1.43.0 gopkg.in/natefinch/lumberjack.v2 v2.0.0 - k8s.io/api v0.23.2 - k8s.io/apimachinery v0.23.2 - k8s.io/client-go v0.23.2 - sigs.k8s.io/controller-runtime v0.11.0 + k8s.io/api v0.23.4 + k8s.io/apimachinery v0.23.4 + k8s.io/client-go v0.23.4 + sigs.k8s.io/controller-runtime v0.11.1 sigs.k8s.io/yaml v1.3.0 ) @@ -45,9 +45,9 @@ require ( github.com/go-openapi/jsonpointer v0.19.5 // indirect github.com/go-openapi/jsonreference v0.19.6 // indirect github.com/go-openapi/loads v0.21.0 // indirect - github.com/go-openapi/runtime v0.21.1 // indirect + github.com/go-openapi/runtime v0.23.0 // indirect github.com/go-openapi/spec v0.20.4 // indirect - github.com/go-openapi/strfmt v0.21.1 // indirect + github.com/go-openapi/strfmt v0.21.2 // indirect github.com/go-openapi/swag v0.19.15 // indirect github.com/go-openapi/validate v0.20.3 // indirect github.com/go-stack/stack v1.8.0 // indirect @@ -100,12 +100,12 @@ require ( gopkg.in/ini.v1 v1.62.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect - k8s.io/apiextensions-apiserver v0.23.2 // indirect - k8s.io/component-base v0.23.2 // indirect + k8s.io/apiextensions-apiserver v0.23.4 // indirect + k8s.io/component-base v0.23.4 // indirect k8s.io/klog v1.0.0 // indirect k8s.io/klog/v2 v2.30.0 // indirect k8s.io/kube-openapi v0.0.0-20220114203427-a0453230fd26 // indirect - k8s.io/utils v0.0.0-20210930125809-cb0fa318a74b // indirect + k8s.io/utils v0.0.0-20211116205334-6203023598ed // indirect sigs.k8s.io/json v0.0.0-20211020170558-c049b76a60c6 // indirect sigs.k8s.io/kustomize/pseudo/k8s v0.1.0 // indirect sigs.k8s.io/structured-merge-diff/v4 v4.2.1 // indirect diff --git a/components/relay/go.sum b/components/relay/go.sum index 93ffcef..ac01a97 100644 --- a/components/relay/go.sum +++ b/components/relay/go.sum @@ -255,8 +255,8 @@ github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29g github.com/go-openapi/runtime v0.19.15/go.mod h1:dhGWCTKRXlAfGnQG0ONViOZpjfg0m2gUt9nTQPQZuoo= github.com/go-openapi/runtime v0.19.16/go.mod h1:5P9104EJgYcizotuXhEuUrzVc+j1RiSjahULvYmlv98= github.com/go-openapi/runtime v0.19.24/go.mod h1:Lm9YGCeecBnUUkFTxPC4s1+lwrkJ0pthx8YvyjCfkgk= -github.com/go-openapi/runtime v0.21.1 h1:/KIG00BzA2x2HRStX2tnhbqbQdPcFlkgsYCiNY20FZs= -github.com/go-openapi/runtime v0.21.1/go.mod h1:aQg+kaIQEn+A2CRSY1TxbM8+sT9g2V3aLc1FbIAnbbs= +github.com/go-openapi/runtime v0.23.0 h1:HX6ET2sHCIvaKeDDQoU01CtO1ekg5EkekHSkLTtWXH0= +github.com/go-openapi/runtime v0.23.0/go.mod h1:aQg+kaIQEn+A2CRSY1TxbM8+sT9g2V3aLc1FbIAnbbs= github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= @@ -281,8 +281,8 @@ github.com/go-openapi/strfmt v0.19.11/go.mod h1:UukAYgTaQfqJuAFlNxxMWNvMYiwiXtLs github.com/go-openapi/strfmt v0.20.0/go.mod h1:UukAYgTaQfqJuAFlNxxMWNvMYiwiXtLsF2VwmoFtbtc= github.com/go-openapi/strfmt v0.20.2/go.mod h1:43urheQI9dNtE5lTZQfuFJvjYJKPrxicATpEfZwHUNk= github.com/go-openapi/strfmt v0.21.0/go.mod h1:ZRQ409bWMj+SOgXofQAGTIo2Ebu72Gs+WaRADcS5iNg= -github.com/go-openapi/strfmt v0.21.1 h1:G6s2t5V5kGCHLVbSdZ/6lI8Wm4OzoPFkc3/cjAsKQrM= -github.com/go-openapi/strfmt v0.21.1/go.mod h1:I/XVKeLc5+MM5oPNN7P6urMOpuLXEcNrCX/rPGuWb0k= +github.com/go-openapi/strfmt v0.21.2 h1:5NDNgadiX1Vhemth/TH4gCGopWSTdDjxl60H3B7f+os= +github.com/go-openapi/strfmt v0.21.2/go.mod h1:I/XVKeLc5+MM5oPNN7P6urMOpuLXEcNrCX/rPGuWb0k= github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= @@ -392,6 +392,7 @@ github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.7 h1:81/ik6ipDQS2aGcBfIN5dHDB36BwrStyeAQquSYCV4o= github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= github.com/google/gofuzz v0.0.0-20161122191042-44d81051d367/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= @@ -437,6 +438,7 @@ github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgf github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.2/go.mod h1:lsuH8kb4GlMdSlI4alNIBBSAt5CHJtg3i+0WuN9J5YM= github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.3 h1:I8MsauTJQXZ8df8qJvEln0kYNc3bSapuaSsEsnFdEFU= github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.3/go.mod h1:lZdb/YAJUSj9OqrCHs2ihjtoO3+xK3G53wTYXFWRGDo= github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= @@ -503,6 +505,7 @@ github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.9.5/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= +github.com/klauspost/cpuid/v2 v2.0.6/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -586,6 +589,7 @@ github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAl github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= +github.com/ory/kratos-client-go v0.8.2-alpha.1/go.mod h1:dOQIsar76K07wMPJD/6aMhrWyY+sFGEagLDLso1CpsA= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= @@ -642,8 +646,10 @@ github.com/rs/xid v1.3.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= +github.com/segmentio/asm v1.1.0/go.mod h1:4EUJGaKsB8ImLUwOGORVsNd9vTRDeh44JGsY4aKp5I4= github.com/segmentio/asm v1.1.3 h1:WM03sfUOENvvKexOLp+pCqgb/WDjsi7EK8gIsICtzhc= github.com/segmentio/asm v1.1.3/go.mod h1:Ld3L4ZXGNcSLRg4JBsZ3//1+f/TjYl0Mzen/DQy1EJg= +github.com/segmentio/encoding v0.3.2/go.mod h1:waft2p6XI4z2pk07M0YzZV4wEiqaRvsBSyWNHxVx4gU= github.com/segmentio/encoding v0.3.3 h1:VG1HceOLwHkSDdkxshlu9pD4FftWkScmHc8RDQ+w9uM= github.com/segmentio/encoding v0.3.3/go.mod h1:n0JeuIqEQrQoPDGsjo8UNd1iA0U8d8+oHAA4E3G3OxM= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= @@ -704,7 +710,8 @@ github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802/go.mod h1 github.com/tmthrgd/go-hex v0.0.0-20190904060850-447a3041c3bc/go.mod h1:bciPuU6GHm1iF1pBvUfxfsH0Wmnc2VbpgvbI9ZWuIRs= github.com/twmb/murmur3 v1.1.6 h1:mqrRot1BRxm+Yct+vavLMou2/iJt0tNVTTC0QoIjaZg= github.com/twmb/murmur3 v1.1.6/go.mod h1:Qq/R7NUyOfr65zD+6Q5IHKsJLwP7exErjN6lyyq3OSQ= -github.com/uptrace/bun v1.0.21/go.mod h1:u+QsgCgjGFwshy3euGAN1CLEO9RMf42lga5jQ/ezYsc= +github.com/uptrace/bun v1.0.20/go.mod h1:Uv7z0z+7dXnUS9P5hMF0hdiM/4M+xOUHQCrZpyDrpRc= +github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= github.com/valyala/fastjson v1.6.3 h1:tAKFnnwmeMGPbwJ7IwxcTPCNr3uIzoIj3/Fh90ra4xc= github.com/valyala/fastjson v1.6.3/go.mod h1:CLCAqky6SMuOcxStkYQvblddUtoRxhYMGLrsQns1aXY= github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw= @@ -896,6 +903,7 @@ golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210323180902-22b0adad7558/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= @@ -1157,6 +1165,7 @@ google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20220118154757-00ab72f36ad5 h1:zzNejm+EgrbLfDZ6lu9Uud2IVvHySPl8vQzf04laR5Q= google.golang.org/genproto v0.0.0-20220118154757-00ab72f36ad5/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= @@ -1241,24 +1250,24 @@ honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= k8s.io/api v0.23.0/go.mod h1:8wmDdLBHBNxtOIytwLstXt5E9PddnZb0GaMcqsvDBpg= -k8s.io/api v0.23.2 h1:62cpzreV3dCuj0hqPi8r4dyWh48ogMcyh+ga9jEGij4= -k8s.io/api v0.23.2/go.mod h1:sYuDb3flCtRPI8ghn6qFrcK5ZBu2mhbElxRE95qpwlI= +k8s.io/api v0.23.4 h1:85gnfXQOWbJa1SiWGpE9EEtHs0UVvDyIsSMpEtl2D4E= +k8s.io/api v0.23.4/go.mod h1:i77F4JfyNNrhOjZF7OwwNJS5Y1S9dpwvb9iYRYRczfI= k8s.io/apiextensions-apiserver v0.23.0/go.mod h1:xIFAEEDlAZgpVBl/1VSjGDmLoXAWRG40+GsWhKhAxY4= -k8s.io/apiextensions-apiserver v0.23.2 h1:N6CIVAhmF0ahgFKUMDdV/AUyckhUb4nIyVPohPtdUPk= -k8s.io/apiextensions-apiserver v0.23.2/go.mod h1:9cs7avT6+GfzbB0pambTvH11wcaR85QQg4ovl9s15UU= +k8s.io/apiextensions-apiserver v0.23.4 h1:AFDUEu/yEf0YnuZhqhIFhPLPhhcQQVuR1u3WCh0rveU= +k8s.io/apiextensions-apiserver v0.23.4/go.mod h1:TWYAKymJx7nLMxWCgWm2RYGXHrGlVZnxIlGnvtfYu+g= k8s.io/apimachinery v0.23.0/go.mod h1:fFCTTBKvKcwTPFzjlcxp91uPFZr+JA0FubU4fLzzFYc= -k8s.io/apimachinery v0.23.2 h1:dBmjCOeYBdg2ibcQxMuUq+OopZ9fjfLIR5taP/XKeTs= -k8s.io/apimachinery v0.23.2/go.mod h1:zDqeV0AK62LbCI0CI7KbWCAYdLg+E+8UXJ0rIz5gmS8= +k8s.io/apimachinery v0.23.4 h1:fhnuMd/xUL3Cjfl64j5ULKZ1/J9n8NuQEgNL+WXWfdM= +k8s.io/apimachinery v0.23.4/go.mod h1:BEuFMMBaIbcOqVIJqNZJXGFTP4W6AycEpb5+m/97hrM= k8s.io/apiserver v0.23.0/go.mod h1:Cec35u/9zAepDPPFyT+UMrgqOCjgJ5qtfVJDxjZYmt4= -k8s.io/apiserver v0.23.2/go.mod h1:Kdt8gafkPev9Gfh+H6lCPbmRu42f7BfhOfHKKa3dtyU= +k8s.io/apiserver v0.23.4/go.mod h1:A6l/ZcNtxGfPSqbFDoxxOjEjSKBaQmE+UTveOmMkpNc= k8s.io/client-go v0.23.0/go.mod h1:hrDnpnK1mSr65lHHcUuIZIXDgEbzc7/683c6hyG4jTA= -k8s.io/client-go v0.23.2 h1:BNbOcxa99jxHH8mM1cPKGIrrKRnCSAfAtyonYGsbFtE= -k8s.io/client-go v0.23.2/go.mod h1:k3YbsWg6GWdHF1THHTQP88X9RhB1DWPo3Dq7KfU/D1c= +k8s.io/client-go v0.23.4 h1:YVWvPeerA2gpUudLelvsolzH7c2sFoXXR5wM/sWqNFU= +k8s.io/client-go v0.23.4/go.mod h1:PKnIL4pqLuvYUK1WU7RLTMYKPiIh7MYShLshtRY9cj0= k8s.io/code-generator v0.23.0/go.mod h1:vQvOhDXhuzqiVfM/YHp+dmg10WDZCchJVObc9MvowsE= -k8s.io/code-generator v0.23.2/go.mod h1:S0Q1JVA+kSzTI1oUvbKAxZY/DYbA/ZUb4Uknog12ETk= +k8s.io/code-generator v0.23.4/go.mod h1:S0Q1JVA+kSzTI1oUvbKAxZY/DYbA/ZUb4Uknog12ETk= k8s.io/component-base v0.23.0/go.mod h1:DHH5uiFvLC1edCpvcTDV++NKULdYYU6pR9Tt3HIKMKI= -k8s.io/component-base v0.23.2 h1:dAYmUhWIBWO762etTjBEEKtYYHi5CoQInSLtK6LM1Zs= -k8s.io/component-base v0.23.2/go.mod h1:wS9Z03MO3oJ0RU8bB/dbXTiluGju+SC/F5i660gxB8c= +k8s.io/component-base v0.23.4 h1:SziYh48+QKxK+ykJ3Ejqd98XdZIseVBG7sBaNLPqy6M= +k8s.io/component-base v0.23.4/go.mod h1:8o3Gg8i2vnUXGPOwciiYlkSaZT+p+7gA9Scoz8y4W4E= k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= @@ -1275,15 +1284,16 @@ k8s.io/kube-openapi v0.0.0-20220114203427-a0453230fd26 h1:2G24ndYyfk0l23ZrGutxb0 k8s.io/kube-openapi v0.0.0-20220114203427-a0453230fd26/go.mod h1:sX9MT8g7NVZM5lVL/j8QyCCJe8YSMW30QvGZWaCIDIk= k8s.io/utils v0.0.0-20191030222137-2b95a09bc58d/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= k8s.io/utils v0.0.0-20210802155522-efc7438f0176/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -k8s.io/utils v0.0.0-20210930125809-cb0fa318a74b h1:wxEMGetGMur3J1xuGLQY7GEQYg9bZxKn3tKo5k/eYcs= k8s.io/utils v0.0.0-20210930125809-cb0fa318a74b/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= +k8s.io/utils v0.0.0-20211116205334-6203023598ed h1:ck1fRPWPJWsMd8ZRFsWc6mh/zHp5fZ/shhbrgPUxDAE= +k8s.io/utils v0.0.0-20211116205334-6203023598ed/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.25/go.mod h1:Mlj9PNLmG9bZ6BHFwFKDo5afkpWyUISkb9Me0GnK66I= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.27/go.mod h1:tq2nT0Kx7W+/f2JVE+zxYtUhdjuELJkVpNz+x/QN5R4= -sigs.k8s.io/controller-runtime v0.11.0 h1:DqO+c8mywcZLFJWILq4iktoECTyn30Bkj0CwgqMpZWQ= -sigs.k8s.io/controller-runtime v0.11.0/go.mod h1:KKwLiTooNGu+JmLZGn9Sl3Gjmfj66eMbCQznLP5zcqA= +sigs.k8s.io/controller-runtime v0.11.1 h1:7YIHT2QnHJArj/dk9aUkYhfqfK5cIxPOX5gPECfdZLU= +sigs.k8s.io/controller-runtime v0.11.1/go.mod h1:KKwLiTooNGu+JmLZGn9Sl3Gjmfj66eMbCQznLP5zcqA= sigs.k8s.io/json v0.0.0-20211020170558-c049b76a60c6 h1:fD1pz4yfdADVNfFmcP2aBEtudwUQ1AlLnRBALr33v3s= sigs.k8s.io/json v0.0.0-20211020170558-c049b76a60c6/go.mod h1:p4QtZmO4uMYipTQNzagwnNoseA6OxSUutVw05NhYDRs= sigs.k8s.io/kustomize/pseudo/k8s v0.1.0 h1:otg4dLFc03c3gzl+2CV8GPGcd1kk8wjXwD+UhhcCn5I= diff --git a/components/usermgmt/internal/models/oidc_provider.go b/components/usermgmt/internal/models/oidc_provider.go index e24e30a..1d03901 100644 --- a/components/usermgmt/internal/models/oidc_provider.go +++ b/components/usermgmt/internal/models/oidc_provider.go @@ -27,7 +27,7 @@ type OIDCProvider struct { IssuerURL string `bun:"issuer_url,notnull"` AuthURL string `bun:"auth_url"` TokenURL string `bun:"token_url"` - RequestedClaims map[string]interface{} `bun:"type:jsonb"` + RequestedClaims map[string]interface{} `bun:"requested_claims,type:jsonb"` Predefined bool `bun:"predefined,notnull"` Trash bool `bun:"trash,default:false"` } diff --git a/components/usermgmt/main.go b/components/usermgmt/main.go index 5484323..7977dc7 100644 --- a/components/usermgmt/main.go +++ b/components/usermgmt/main.go @@ -78,9 +78,9 @@ var ( ) func setup() { - viper.SetDefault(rpcPortEnv, 10000) - viper.SetDefault(apiPortEnv, 11000) - viper.SetDefault(debugPortEnv, 12000) + viper.SetDefault(rpcPortEnv, 14000) + viper.SetDefault(apiPortEnv, 15000) + viper.SetDefault(debugPortEnv, 16000) viper.SetDefault(kratosSchemeEnv, "http") viper.SetDefault(kratosAddrEnv, "localhost:4433") viper.SetDefault(authzPortEnv, 50011) diff --git a/components/usermgmt/pkg/service/group.go b/components/usermgmt/pkg/service/group.go index e7d9541..5060dde 100644 --- a/components/usermgmt/pkg/service/group.go +++ b/components/usermgmt/pkg/service/group.go @@ -256,8 +256,8 @@ func (s *groupService) createGroupAccountRelations(ctx context.Context, groupId // TODO: revert our db inserts if this fails // Just FYI, the succcess can be false if we delete the db directly but casbin has it available internally - success, err := s.azc.CreateUserGroups(ctx, &authzv1.UserGroups{UserGroups: ugs}) - if err != nil || !success.Res { + _, err = s.azc.CreateUserGroups(ctx, &authzv1.UserGroups{UserGroups: ugs}) + if err != nil { return &userv3.Group{}, fmt.Errorf("unable to create mapping in authz; %v", err) } diff --git a/components/usermgmt/pkg/sso/saml/middleware.go b/components/usermgmt/pkg/sso/saml/middleware.go index b8b6999..e7d5af5 100644 --- a/components/usermgmt/pkg/sso/saml/middleware.go +++ b/components/usermgmt/pkg/sso/saml/middleware.go @@ -5,6 +5,7 @@ import ( "crypto/rsa" "crypto/tls" "crypto/x509" + "fmt" "net/http" "net/url" "os" @@ -36,7 +37,7 @@ func newSAMLMiddlewareFromIDP(idp models.Idp) (*SAMLMiddleware, error) { } } - acsURL, err := url.Parse(idp.AcsURL) + acsURL, err := url.Parse(fmt.Sprintf("%s://%s/auth/v3/sso/acs/%s", rootURL.Scheme, rootURL.Host, idp.Id)) if err != nil { return nil, err } diff --git a/persistence/migrations/admindb/000004_authsrv_account.down.sql b/persistence/migrations/admindb/000004_authsrv_account.down.sql index 3d3d45b..086b979 100644 --- a/persistence/migrations/admindb/000004_authsrv_account.down.sql +++ b/persistence/migrations/admindb/000004_authsrv_account.down.sql @@ -1,4 +1,2 @@ -DROP TABLE IF EXISTS authsrv_account; -DROP SEQUENCE IF EXISTS authsrv_account_id_seq; DROP TABLE IF EXISTS authsrv_ssoaccount; DROP SEQUENCE IF EXISTS authsrv_ssoaccount_id_seq; \ No newline at end of file diff --git a/persistence/migrations/admindb/000004_authsrv_account.up.sql b/persistence/migrations/admindb/000004_authsrv_account.up.sql index 16acc48..a3ab576 100644 --- a/persistence/migrations/admindb/000004_authsrv_account.up.sql +++ b/persistence/migrations/admindb/000004_authsrv_account.up.sql @@ -1,36 +1,3 @@ -CREATE TABLE IF NOT EXISTS authsrv_account ( - id uuid NOT NULL default uuid_generate_v4(), - last_login timestamp with time zone, - name character varying(256) NOT NULL, - description character varying(512) NOT NULL, - created_at timestamp with time zone NOT NULL, - modified_at timestamp with time zone NOT NULL, - trash boolean NOT NULL, - username character varying(256) NOT NULL, -- should we have it here? - organization_id uuid, - user_type character varying(256) default 'CONSOLE', - provider character varying(256) NOT NULL, -- local/oidc/saml (user_type??) - identity_id uuid NOT NULL -- TODO: add foreign key constraint -); - -ALTER TABLE authsrv_account OWNER TO admindbuser; - -ALTER TABLE ONLY authsrv_account ADD CONSTRAINT authsrv_account_pkey PRIMARY KEY (id); - -ALTER TABLE ONLY authsrv_account ADD CONSTRAINT authsrv_account_username_key UNIQUE (username); - -CREATE INDEX authsrv_account_name_16ecead7 ON authsrv_account USING btree (name); - -CREATE INDEX authsrv_account_name_16ecead7_like ON authsrv_account USING btree (name varchar_pattern_ops); - -CREATE INDEX authsrv_account_organization_id_abc549fc ON authsrv_account USING btree (organization_id); - -CREATE INDEX authsrv_account_username_1db08261_like ON authsrv_account USING btree (username varchar_pattern_ops); - -ALTER TABLE ONLY authsrv_account - ADD CONSTRAINT authsrv_account_organization_id_abc549fc_fk_authsrv_o FOREIGN KEY (organization_id) - REFERENCES authsrv_organization(id) DEFERRABLE INITIALLY DEFERRED; - CREATE TABLE IF NOT EXISTS authsrv_ssoaccount ( password character varying(128) NOT NULL, last_login timestamp with time zone, @@ -65,4 +32,4 @@ CREATE INDEX authsrv_ssoaccount_username_029374ce_like ON authsrv_ssoaccount USI ALTER TABLE ONLY authsrv_ssoaccount ADD CONSTRAINT authsrv_ssoaccount_organization_id_d2a979a5_fk_authsrv_o FOREIGN KEY (organization_id) - REFERENCES authsrv_organization(id) DEFERRABLE INITIALLY DEFERRED; + REFERENCES authsrv_organization(id) DEFERRABLE INITIALLY DEFERRED; \ No newline at end of file diff --git a/persistence/migrations/admindb/000008_authsrv_resourcepermission.up.sql b/persistence/migrations/admindb/000008_authsrv_resourcepermission.up.sql index c890d78..97a5e23 100644 --- a/persistence/migrations/admindb/000008_authsrv_resourcepermission.up.sql +++ b/persistence/migrations/admindb/000008_authsrv_resourcepermission.up.sql @@ -7,7 +7,7 @@ CREATE TABLE IF NOT EXISTS authsrv_resourcepermission ( modified_at timestamp with time zone NOT NULL, trash boolean NOT NULL, resource_urls jsonb NOT NULL, - resource_action_urls jsonb NOT NULL, + resource_action_urls jsonb NOT NULL ); ALTER TABLE authsrv_resourcepermission OWNER TO admindbuser; diff --git a/persistence/migrations/admindb/000028_authsrv_idp.down.sql b/persistence/migrations/admindb/000028_authsrv_idp.down.sql new file mode 100644 index 0000000..375d657 --- /dev/null +++ b/persistence/migrations/admindb/000028_authsrv_idp.down.sql @@ -0,0 +1 @@ +DROP TABLE IF EXISTS authsrv_idp; \ No newline at end of file diff --git a/persistence/migrations/admindb/000028_authsrv_idp.up.sql b/persistence/migrations/admindb/000028_authsrv_idp.up.sql new file mode 100644 index 0000000..5981b8c --- /dev/null +++ b/persistence/migrations/admindb/000028_authsrv_idp.up.sql @@ -0,0 +1,41 @@ +CREATE TABLE IF NOT EXISTS authsrv_idp ( + id uuid NOT NULL default uuid_generate_v4(), + name character varying(256) NOT NULL, + description character varying(512) NOT NULL, + created_at timestamp with time zone NOT NULL, + modified_at timestamp with time zone NOT NULL, + idp_name character varying(256) NOT NULL, + domain character varying(64) NOT NULL, + trash boolean NOT NULL, + organization_id uuid, + partner_id uuid NOT NULL, + sso_url character varying(256), + idp_cert text, + sp_cert text, + sp_key text, + metadata_url character varying(256), + metadata_filename character varying(64), + metadata bytea, + group_attribute_name text, + is_sae_enabled boolean default false +); + +ALTER TABLE authsrv_idp OWNER TO admindbuser; + +ALTER TABLE ONLY authsrv_idp ADD CONSTRAINT authsrv_idp_pkey PRIMARY KEY (id); + +ALTER TABLE ONLY authsrv_idp ADD CONSTRAINT authsrv_idp_partner_id_domain_5669b152_uniq UNIQUE (partner_id, domain); + +CREATE INDEX authsrv_idp_organization_id_4219d6ee ON authsrv_idp USING btree (organization_id); + +CREATE INDEX authsrv_idp_partner_id_beb7c8df ON authsrv_idp USING btree (partner_id); + +CREATE INDEX authsrv_idp_partner_id_domain_5669b152_idx ON authsrv_idp USING btree (partner_id, domain); + +ALTER TABLE ONLY authsrv_idp + ADD CONSTRAINT authsrv_idp_organization_id_4219d6ee_fk_authsrv_organization_id FOREIGN KEY (organization_id) + REFERENCES authsrv_organization(id) DEFERRABLE INITIALLY DEFERRED; + +ALTER TABLE ONLY authsrv_idp + ADD CONSTRAINT authsrv_idp_partner_id_beb7c8df_fk_authsrv_partner_id FOREIGN KEY (partner_id) + REFERENCES authsrv_partner(id) DEFERRABLE INITIALLY DEFERRED; \ No newline at end of file diff --git a/persistence/migrations/admindb/000029_authsrv_oidc_provider.down.sql b/persistence/migrations/admindb/000029_authsrv_oidc_provider.down.sql new file mode 100644 index 0000000..e87668d --- /dev/null +++ b/persistence/migrations/admindb/000029_authsrv_oidc_provider.down.sql @@ -0,0 +1 @@ +DROP TABLE IF EXISTS authsrv_oidc_provider; \ No newline at end of file diff --git a/persistence/migrations/admindb/000029_authsrv_oidc_provider.up.sql b/persistence/migrations/admindb/000029_authsrv_oidc_provider.up.sql new file mode 100644 index 0000000..e11c675 --- /dev/null +++ b/persistence/migrations/admindb/000029_authsrv_oidc_provider.up.sql @@ -0,0 +1,40 @@ +CREATE TABLE IF NOT EXISTS authsrv_oidc_provider ( + id uuid NOT NULL default uuid_generate_v4(), + name character varying(256) NOT NULL, + description character varying(512) NOT NULL, + organization_id uuid, + partner_id uuid NOT NULL, + created_at timestamp with time zone NOT NULL, + modified_at timestamp with time zone NOT NULL, + + provider_name character varying(256) NOT NULL, + mapper_url character varying(256), + mapper_filename character varying(256), + client_id character varying(256) NOT NULL, + client_secret character varying(256) NOT NULL, + scopes text[] NOT NULL, + issuer_url character varying(256) NOT NULL, + auth_url character varying(256), + token_url character varying(256), + requested_claims jsonb NOT NULL DEFAULT '{}' ::jsonb, + predefined boolean default false, + trash boolean NOT NULL +); + +ALTER TABLE authsrv_oidc_provider OWNER TO admindbuser; + +ALTER TABLE ONLY authsrv_oidc_provider ADD CONSTRAINT authsrv_oidc_provider_pkey PRIMARY KEY (id); + +ALTER TABLE ONLY authsrv_oidc_provider ADD CONSTRAINT authsrv_oidc_provider_name_key UNIQUE (name); + +CREATE INDEX authsrv_oidc_provider_organization_id_4219d6ee ON authsrv_oidc_provider USING btree (organization_id); + +CREATE INDEX authsrv_oidc_provider_partner_id_beb7c8df ON authsrv_oidc_provider USING btree (partner_id); + +ALTER TABLE ONLY authsrv_oidc_provider + ADD CONSTRAINT authsrv_oidc_provider_organization_id_4219d6ee_fk_authsrv_organization_id FOREIGN KEY (organization_id) + REFERENCES authsrv_organization(id) DEFERRABLE INITIALLY DEFERRED; + +ALTER TABLE ONLY authsrv_oidc_provider + ADD CONSTRAINT authsrv_oidc_provider_partner_id_beb7c8df_fk_authsrv_partner_id FOREIGN KEY (partner_id) + REFERENCES authsrv_partner(id) DEFERRABLE INITIALLY DEFERRED; \ No newline at end of file diff --git a/persistence/migrations/admindb/000030_pg_oidc_provider_triggers.down.sql b/persistence/migrations/admindb/000030_pg_oidc_provider_triggers.down.sql new file mode 100644 index 0000000..b56314e --- /dev/null +++ b/persistence/migrations/admindb/000030_pg_oidc_provider_triggers.down.sql @@ -0,0 +1,4 @@ +DROP FUNCTION IF EXISTS providers_after_change_trigger(); +DROP TRIGGER IF EXISTS providers_updated ON authsrv_oidc_provider; +DROP TRIGGER IF EXISTS providers_inserted ON authsrv_oidc_provider; +DROP TRIGGER IF EXISTS providers_deleted ON authsrv_oidc_provider; \ No newline at end of file diff --git a/persistence/migrations/admindb/pg_oidc_provider_triggers.sql b/persistence/migrations/admindb/000030_pg_oidc_provider_triggers.up.sql similarity index 100% rename from persistence/migrations/admindb/pg_oidc_provider_triggers.sql rename to persistence/migrations/admindb/000030_pg_oidc_provider_triggers.up.sql