-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
registry.go
148 lines (111 loc) · 3.39 KB
/
registry.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
package driver
import (
"github.com/ory/x/tracing"
"github.com/zzpu/ums/metrics/prometheus"
"github.com/gorilla/sessions"
"github.com/pkg/errors"
"github.com/ory/x/logrusx"
"github.com/zzpu/ums/continuity"
"github.com/zzpu/ums/courier"
"github.com/zzpu/ums/hash"
"github.com/zzpu/ums/schema"
"github.com/zzpu/ums/selfservice/flow/recovery"
"github.com/zzpu/ums/selfservice/flow/settings"
"github.com/zzpu/ums/selfservice/flow/verification"
"github.com/zzpu/ums/selfservice/strategy/link"
"github.com/ory/x/healthx"
"github.com/zzpu/ums/persistence"
"github.com/zzpu/ums/selfservice/flow/login"
"github.com/zzpu/ums/selfservice/flow/logout"
"github.com/zzpu/ums/selfservice/flow/registration"
"github.com/zzpu/ums/x"
"github.com/ory/x/dbal"
"github.com/zzpu/ums/driver/configuration"
"github.com/zzpu/ums/identity"
"github.com/zzpu/ums/selfservice/errorx"
password2 "github.com/zzpu/ums/selfservice/strategy/password"
"github.com/zzpu/ums/session"
)
type Registry interface {
dbal.Driver
Init() error
WithConfig(c configuration.Provider) Registry
WithLogger(l *logrusx.Logger) Registry
BuildVersion() string
BuildDate() string
BuildHash() string
WithBuildInfo(version, hash, date string) Registry
WithCSRFHandler(c x.CSRFHandler)
WithCSRFTokenGenerator(cg x.CSRFToken)
HealthHandler() *healthx.Handler
CookieManager() sessions.Store
ContinuityCookieManager() sessions.Store
RegisterRoutes(public *x.RouterPublic, admin *x.RouterAdmin)
RegisterPublicRoutes(public *x.RouterPublic)
RegisterAdminRoutes(admin *x.RouterAdmin)
PrometheusManager() *prometheus.MetricsManager
Tracer() *tracing.Tracer
x.CSRFProvider
x.WriterProvider
x.LoggingProvider
continuity.ManagementProvider
continuity.PersistenceProvider
courier.Provider
persistence.Provider
errorx.ManagementProvider
errorx.HandlerProvider
errorx.PersistenceProvider
hash.HashProvider
identity.HandlerProvider
identity.ValidationProvider
identity.PoolProvider
identity.PrivilegedPoolProvider
identity.ManagementProvider
identity.ActiveCredentialsCounterStrategyProvider
schema.HandlerProvider
password2.ValidationProvider
session.HandlerProvider
session.ManagementProvider
session.PersistenceProvider
settings.HandlerProvider
settings.ErrorHandlerProvider
settings.FlowPersistenceProvider
settings.StrategyProvider
login.FlowPersistenceProvider
login.ErrorHandlerProvider
login.HooksProvider
login.HookExecutorProvider
login.HandlerProvider
login.StrategyProvider
logout.HandlerProvider
registration.FlowPersistenceProvider
registration.ErrorHandlerProvider
registration.HooksProvider
registration.HookExecutorProvider
registration.HandlerProvider
registration.StrategyProvider
verification.FlowPersistenceProvider
verification.ErrorHandlerProvider
verification.HandlerProvider
verification.StrategyProvider
link.SenderProvider
link.VerificationTokenPersistenceProvider
link.RecoveryTokenPersistenceProvider
recovery.FlowPersistenceProvider
recovery.ErrorHandlerProvider
recovery.HandlerProvider
recovery.StrategyProvider
x.CSRFTokenGeneratorProvider
}
func NewRegistry(c configuration.Provider) (Registry, error) {
dsn := c.DSN()
driver, err := dbal.GetDriverFor(dsn)
if err != nil {
return nil, errors.WithStack(err)
}
registry, ok := driver.(Registry)
if !ok {
return nil, errors.Errorf("driver of type %T does not implement interface Registry", driver)
}
return registry, nil
}