Some checks failed
CI / Run tests and lints (push) Failing after 29s
CI / Build CLI docs (push) Has been skipped
CI / Run Playwright end-to-end tests (mysql) (push) Failing after 3s
CI / Run Playwright end-to-end tests (postgres) (push) Failing after 2s
CI / Run Playwright end-to-end tests (sqlite) (push) Failing after 3s
CodeQL / Analyze (go) (push) Failing after 4s
CodeQL / Analyze (javascript) (push) Failing after 3s
Docker Image Scanners / scanners (push) Failing after 4s
Synchronize Issue Labels / Synchronize Issue Labels (push) Has been skipped
CI / Run end-to-end tests (postgres) (push) Failing after 19s
CI / Run end-to-end tests (sqlite) (push) Failing after 2s
CI / Run Playwright end-to-end tests (cockroach) (push) Failing after 2s
CI / Draft newsletter (push) Has been skipped
CI / Generate release (push) Has been skipped
CI / Pending approval Slack notification (push) Has been skipped
CI / Send newsletter (push) Has been skipped
78 lines
2.0 KiB
Go
78 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/transaction"
|
|
|
|
"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
|
|
identity.PendingTraitsChangePersister
|
|
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
|
|
transaction.Persister
|
|
Networker
|
|
}
|
|
|
|
type Networker interface {
|
|
WithNetworkID(nid uuid.UUID) Persister
|
|
NetworkID(ctx context.Context) uuid.UUID
|
|
DetermineNetwork(ctx context.Context) (*networkx.Network, error)
|
|
}
|