mirror of https://github.com/ory/kratos
77 lines
2.0 KiB
Go
77 lines
2.0 KiB
Go
// Copyright © 2023 Ory Corp
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package persistence
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
|
|
"github.com/ory/kratos/x"
|
|
|
|
"github.com/ory/kratos/selfservice/sessiontokenexchange"
|
|
"github.com/ory/x/networkx"
|
|
|
|
"github.com/gofrs/uuid"
|
|
|
|
"github.com/ory/pop/v6"
|
|
|
|
"github.com/ory/x/popx"
|
|
|
|
"github.com/ory/kratos/continuity"
|
|
"github.com/ory/kratos/courier"
|
|
"github.com/ory/kratos/identity"
|
|
"github.com/ory/kratos/selfservice/errorx"
|
|
"github.com/ory/kratos/selfservice/flow/login"
|
|
"github.com/ory/kratos/selfservice/flow/recovery"
|
|
"github.com/ory/kratos/selfservice/flow/registration"
|
|
"github.com/ory/kratos/selfservice/flow/settings"
|
|
"github.com/ory/kratos/selfservice/flow/verification"
|
|
"github.com/ory/kratos/selfservice/strategy/code"
|
|
"github.com/ory/kratos/selfservice/strategy/link"
|
|
"github.com/ory/kratos/session"
|
|
)
|
|
|
|
type Provider interface {
|
|
Persister() Persister
|
|
SetPersister(Persister)
|
|
}
|
|
|
|
type Persister interface {
|
|
continuity.Persister
|
|
identity.PrivilegedPool
|
|
registration.FlowPersister
|
|
login.FlowPersister
|
|
settings.FlowPersister
|
|
courier.Persister
|
|
session.Persister
|
|
sessiontokenexchange.Persister
|
|
errorx.Persister
|
|
verification.FlowPersister
|
|
recovery.FlowPersister
|
|
link.RecoveryTokenPersister
|
|
link.VerificationTokenPersister
|
|
code.RecoveryCodePersister
|
|
code.VerificationCodePersister
|
|
code.RegistrationCodePersister
|
|
code.LoginCodePersister
|
|
|
|
CleanupDatabase(context.Context, time.Duration, time.Duration, int) error
|
|
Close(context.Context) error
|
|
Ping(context.Context) error
|
|
MigrationStatus(context.Context) (popx.MigrationStatuses, error)
|
|
MigrateDown(ctx context.Context, steps int) error
|
|
MigrateUp(context.Context) error
|
|
MigrationBox() *popx.MigrationBox
|
|
GetConnection(context.Context) *pop.Connection
|
|
Connection(ctx context.Context) *pop.Connection
|
|
x.TransactionalPersister
|
|
Networker
|
|
}
|
|
|
|
type Networker interface {
|
|
WithNetworkID(nid uuid.UUID) Persister
|
|
NetworkID(ctx context.Context) uuid.UUID
|
|
DetermineNetwork(ctx context.Context) (*networkx.Network, error)
|
|
}
|