MCPcopy Create free account
hub / github.com/authorizerdev/authorizer / New

Function New

internal/storage/provider.go:180–229  ·  view source on GitHub ↗

New creates a new database provider based on the configuration

(config *config.Config, deps *Dependencies)

Source from the content-addressed store, hash-verified

178
179// New creates a new database provider based on the configuration
180func New(config *config.Config, deps *Dependencies) (Provider, error) {
181 var provider Provider
182 var err error
183 if config.DatabaseType == "" {
184 return nil, fmt.Errorf("database type is required")
185 }
186
187 switch config.DatabaseType {
188 case constants.DbTypePostgres,
189 constants.DbTypeSqlite,
190 constants.DbTypeLibSQL,
191 constants.DbTypeMysql,
192 constants.DbTypeSqlserver,
193 constants.DbTypeYugabyte,
194 constants.DbTypeMariaDB,
195 constants.DbTypeCockroachDB,
196 constants.DbTypePlanetScaleDB:
197 provider, err = sql.NewProvider(config, &sql.Dependencies{
198 Log: deps.Log,
199 })
200 case constants.DbTypeMongoDB:
201 provider, err = mongodb.NewProvider(config, &mongodb.Dependencies{
202 Log: deps.Log,
203 })
204 case constants.DbTypeArangoDB:
205 provider, err = arangodb.NewProvider(config, &arangodb.Dependencies{
206 Log: deps.Log,
207 })
208 case constants.DbTypeCassandraDB,
209 constants.DbTypeScyllaDB:
210 provider, err = cassandradb.NewProvider(config, &cassandradb.Dependencies{
211 Log: deps.Log,
212 })
213 case constants.DbTypeCouchbaseDB:
214 provider, err = couchbase.NewProvider(config, &couchbase.Dependencies{
215 Log: deps.Log,
216 })
217 case constants.DbTypeDynamoDB:
218 provider, err = dynamodb.NewProvider(config, &dynamodb.Dependencies{
219 Log: deps.Log,
220 })
221 default:
222 err = fmt.Errorf("unsupported database type: %s", config.DatabaseType)
223
224 }
225 if err != nil {
226 return nil, err
227 }
228 return provider, nil
229}

Callers 7

initFGATestSetupFunction · 0.92
initTestSetupFunction · 0.92
runRootFunction · 0.92
runMCPFunction · 0.92
TestStorageProviderFunction · 0.70

Calls 6

NewProviderFunction · 0.92
NewProviderFunction · 0.92
NewProviderFunction · 0.92
NewProviderFunction · 0.92
NewProviderFunction · 0.92
NewProviderFunction · 0.92

Tested by 4

initFGATestSetupFunction · 0.74
TestStorageProviderFunction · 0.56