MCPcopy Create free account
hub / github.com/Permify/permify / NewContainer

Function NewContainer

pkg/development/development.go:38–94  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

36}
37
38func NewContainer() *Development {
39 var err error
40
41 // Create a new in-memory database using the factories package
42 var db database.Database
43 db, err = factories.DatabaseFactory(config.Database{Engine: database.MEMORY.String()})
44 if err != nil {
45 fmt.Println(err)
46 }
47
48 // Create a new logger instance
49 logger := slog.New(slog.NewTextHandler(os.Stdout, nil))
50 slog.SetDefault(logger)
51
52 // Create instances of storage using the factories package
53 dataReader := factories.DataReaderFactory(db)
54 dataWriter := factories.DataWriterFactory(db)
55 bundleReader := factories.BundleReaderFactory(db)
56 bundleWriter := factories.BundleWriterFactory(db)
57 schemaReader := factories.SchemaReaderFactory(db)
58 schemaWriter := factories.SchemaWriterFactory(db)
59 tenantReader := factories.TenantReaderFactory(db)
60 tenantWriter := factories.TenantWriterFactory(db)
61
62 // Create instances of engines
63 checkEngine := engines.NewCheckEngine(schemaReader, dataReader)
64 expandEngine := engines.NewExpandEngine(schemaReader, dataReader)
65 lookupEngine := engines.NewLookupEngine(checkEngine, schemaReader, dataReader)
66 subjectPermissionEngine := engines.NewSubjectPermission(checkEngine, schemaReader)
67
68 invoker := invoke.NewDirectInvoker(
69 schemaReader,
70 dataReader,
71 checkEngine,
72 expandEngine,
73 lookupEngine,
74 subjectPermissionEngine,
75 )
76
77 checkEngine.SetInvoker(invoker)
78
79 // Create a new container instance with engines, storage, and other dependencies
80 return &Development{
81 Container: servers.NewContainer(
82 invoker,
83 dataReader,
84 dataWriter,
85 bundleReader,
86 bundleWriter,
87 schemaReader,
88 schemaWriter,
89 tenantReader,
90 tenantWriter,
91 storage.NewNoopWatcher(),
92 ),
93 }
94}
95

Callers 3

runFunction · 0.92
mainFunction · 0.92
validateFunction · 0.92

Calls 15

SetInvokerMethod · 0.95
DatabaseFactoryFunction · 0.92
DataReaderFactoryFunction · 0.92
DataWriterFactoryFunction · 0.92
BundleReaderFactoryFunction · 0.92
BundleWriterFactoryFunction · 0.92
SchemaReaderFactoryFunction · 0.92
SchemaWriterFactoryFunction · 0.92
TenantReaderFactoryFunction · 0.92
TenantWriterFactoryFunction · 0.92
NewCheckEngineFunction · 0.92
NewExpandEngineFunction · 0.92

Tested by

no test coverage detected