Documentation
¶
Index ¶
- Variables
- type AddIdentityQuery
- type CredentialOfferColl
- type CredentialOfferDocument
- type CredentialOfferStore
- type DatastoreColl
- func (c *DatastoreColl) AddIdentity(ctx context.Context, query *AddIdentityQuery) error
- func (c *DatastoreColl) Delete(ctx context.Context, doc *model.MetaData) error
- func (c *DatastoreColl) DeleteByKey(ctx context.Context, authenticSource, scope, documentID string) error
- func (c *DatastoreColl) DeleteIdentity(ctx context.Context, query *DeleteIdentityQuery) error
- func (c *DatastoreColl) Get(ctx context.Context, meta *model.MetaData) (*model.Document, error)
- func (c *DatastoreColl) GetByIdentity(ctx context.Context, scope, identityMappingID string) (map[string]*model.CompleteDocument, error)
- func (c *DatastoreColl) GetByKey(ctx context.Context, authenticSource, scope, documentID string) (*model.CompleteDocument, error)
- func (c *DatastoreColl) List(ctx context.Context, query *ListQuery) ([]*model.DocumentList, error)
- func (c *DatastoreColl) ListAuthenticSources(ctx context.Context) ([]string, error)
- func (c *DatastoreColl) Replace(ctx context.Context, doc *model.CompleteDocument) error
- func (c *DatastoreColl) Save(ctx context.Context, doc *model.CompleteDocument) error
- func (c *DatastoreColl) SaveMany(ctx context.Context, docs []*model.CompleteDocument) error
- func (c *DatastoreColl) Search(ctx context.Context, query *SearchDocumentsQuery) ([]*model.CompleteDocument, error)
- type DatastoreStore
- type DeleteIdentityQuery
- type DeleteMappingQuery
- type DynamicRegistrationColl
- type DynamicRegistrationCredentials
- type IdentityMappingStore
- type IdentityMappingsColl
- func (c *IdentityMappingsColl) CreateMapping(ctx context.Context, mapping *model.IdentityMapping) error
- func (c *IdentityMappingsColl) CreateMappings(ctx context.Context, mappings []*model.IdentityMapping) error
- func (c *IdentityMappingsColl) DeleteMapping(ctx context.Context, query *DeleteMappingQuery) error
- func (c *IdentityMappingsColl) EnsureMapping(ctx context.Context, mapping *model.IdentityMapping) error
- func (c *IdentityMappingsColl) ResolveMapping(ctx context.Context, query *ResolveMappingQuery) (string, error)
- func (c *IdentityMappingsColl) SearchMappings(ctx context.Context, query *SearchMappingsQuery) ([]*model.IdentityMapping, error)
- func (c *IdentityMappingsColl) UpdateMapping(ctx context.Context, mapping *model.IdentityMapping) error
- type ListQuery
- type ResolveMappingQuery
- type SearchDocumentsQuery
- type SearchMappingsQuery
- type Service
Constants ¶
This section is empty.
Variables ¶
var ErrNoDocuments = errors.New("no documents in result")
ErrNoDocuments is returned when no documents are found
Functions ¶
This section is empty.
Types ¶
type AddIdentityQuery ¶ added in v0.5.7
type AddIdentityQuery struct {
AuthenticSource string `json:"authentic_source" bson:"authentic_source"`
Scope string `json:"scope" bson:"scope"`
DocumentID string `json:"document_id" bson:"document_id"`
IdentityMappingIDs []string `json:"identity_mapping_ids" bson:"identity_mapping_ids"`
}
AddIdentityQuery is the query to add document identity
type CredentialOfferColl ¶ added in v0.5.7
type CredentialOfferColl struct {
Service *Service
Coll *mongo.Collection
// contains filtered or unexported fields
}
func NewCredentialOfferColl ¶
func (*CredentialOfferColl) Delete ¶ added in v0.5.7
func (c *CredentialOfferColl) Delete(ctx context.Context, uuid string) error
Delete deletes one code_challenge
func (*CredentialOfferColl) Get ¶ added in v0.5.7
func (c *CredentialOfferColl) Get(ctx context.Context, uuid string) (*CredentialOfferDocument, error)
func (*CredentialOfferColl) Save ¶ added in v0.5.7
func (c *CredentialOfferColl) Save(ctx context.Context, doc *CredentialOfferDocument) error
type CredentialOfferDocument ¶
type CredentialOfferDocument struct {
UUID string `bson:"uuid"`
CredentialOfferParameters openid4vci.CredentialOfferParameters `bson:"credential_offer_parameters"`
}
type CredentialOfferStore ¶
type CredentialOfferStore interface {
Save(ctx context.Context, doc *CredentialOfferDocument) error
Get(ctx context.Context, uuid string) (*CredentialOfferDocument, error)
Delete(ctx context.Context, uuid string) error
}
CredentialOfferStore defines the interface for credential offer operations
type DatastoreColl ¶ added in v0.5.7
type DatastoreColl struct {
Service *Service
Coll *mongo.Collection
// contains filtered or unexported fields
}
DatastoreColl is the generic collection
func (*DatastoreColl) AddIdentity ¶ added in v0.5.7
func (c *DatastoreColl) AddIdentity(ctx context.Context, query *AddIdentityQuery) error
AddIdentity adds document identity
func (*DatastoreColl) DeleteByKey ¶ added in v0.5.7
func (c *DatastoreColl) DeleteByKey(ctx context.Context, authenticSource, scope, documentID string) error
DeleteByKey deletes a document by its natural key (authentic_source, scope, document_id)
func (*DatastoreColl) DeleteIdentity ¶ added in v0.5.7
func (c *DatastoreColl) DeleteIdentity(ctx context.Context, query *DeleteIdentityQuery) error
DeleteIdentity deletes identity in document
func (*DatastoreColl) GetByIdentity ¶ added in v0.5.7
func (c *DatastoreColl) GetByIdentity(ctx context.Context, scope, identityMappingID string) (map[string]*model.CompleteDocument, error)
GetByIdentity returns matching documents for a scope where any of the document's identity_mapping_ids match the provided identifier.
func (*DatastoreColl) GetByKey ¶ added in v0.5.7
func (c *DatastoreColl) GetByKey(ctx context.Context, authenticSource, scope, documentID string) (*model.CompleteDocument, error)
GetByKey retrieves a document by its natural key (authentic_source, scope, document_id)
func (*DatastoreColl) List ¶ added in v0.5.7
func (c *DatastoreColl) List(ctx context.Context, query *ListQuery) ([]*model.DocumentList, error)
List return matching documents if any, or error
func (*DatastoreColl) ListAuthenticSources ¶ added in v0.5.7
func (c *DatastoreColl) ListAuthenticSources(ctx context.Context) ([]string, error)
ListAuthenticSources returns all unique authentic_source values in the datastore
func (*DatastoreColl) Replace ¶ added in v0.5.7
func (c *DatastoreColl) Replace(ctx context.Context, doc *model.CompleteDocument) error
Replace replaces one document
func (*DatastoreColl) Save ¶ added in v0.5.7
func (c *DatastoreColl) Save(ctx context.Context, doc *model.CompleteDocument) error
Save saves one document to the generic collection
func (*DatastoreColl) SaveMany ¶ added in v0.5.7
func (c *DatastoreColl) SaveMany(ctx context.Context, docs []*model.CompleteDocument) error
SaveMany saves multiple documents to the generic collection using bulk insert
func (*DatastoreColl) Search ¶ added in v0.5.7
func (c *DatastoreColl) Search(ctx context.Context, query *SearchDocumentsQuery) ([]*model.CompleteDocument, error)
Search returns documents matching a text search or filters, with a limit
type DatastoreStore ¶
type DatastoreStore interface {
Save(ctx context.Context, doc *model.CompleteDocument) error
SaveMany(ctx context.Context, docs []*model.CompleteDocument) error
AddIdentity(ctx context.Context, query *AddIdentityQuery) error
DeleteIdentity(ctx context.Context, query *DeleteIdentityQuery) error
Delete(ctx context.Context, doc *model.MetaData) error
Get(ctx context.Context, meta *model.MetaData) (*model.Document, error)
GetByIdentity(ctx context.Context, scope, identityMappingID string) (map[string]*model.CompleteDocument, error)
List(ctx context.Context, query *ListQuery) ([]*model.DocumentList, error)
Replace(ctx context.Context, doc *model.CompleteDocument) error
GetByKey(ctx context.Context, authenticSource, scope, documentID string) (*model.CompleteDocument, error)
DeleteByKey(ctx context.Context, authenticSource, scope, documentID string) error
Search(ctx context.Context, query *SearchDocumentsQuery) ([]*model.CompleteDocument, error)
ListAuthenticSources(ctx context.Context) ([]string, error)
}
DatastoreStore defines the interface for datastore operations
type DeleteIdentityQuery ¶ added in v0.5.7
type DeleteIdentityQuery struct {
AuthenticSource string `json:"authentic_source" bson:"authentic_source"`
Scope string `json:"scope" bson:"scope"`
DocumentID string `json:"document_id" bson:"document_id"`
AuthenticSourcePersonID string `json:"authentic_source_person_id" bson:"authentic_source_person_id"`
}
DeleteIdentityQuery is the query to delete identity in document
type DeleteMappingQuery ¶ added in v0.5.7
type DeleteMappingQuery struct {
AuthenticSource string `json:"authentic_source"`
AuthenticSourcePersonID string `json:"authentic_source_person_id"`
}
DeleteMappingQuery is the query for deleting an identity mapping
type DynamicRegistrationColl ¶ added in v0.5.7
type DynamicRegistrationColl struct {
Service *Service
Coll *mongo.Collection
// contains filtered or unexported fields
}
DynamicRegistrationColl handles persistence of dynamic client registration credentials.
func NewDynamicRegistrationColl ¶
func NewDynamicRegistrationColl(ctx context.Context, collName string, service *Service, log *logger.Log) (*DynamicRegistrationColl, error)
NewDynamicRegistrationColl creates a new collection for dynamic registration credentials.
func (*DynamicRegistrationColl) Get ¶ added in v0.5.7
func (c *DynamicRegistrationColl) Get(ctx context.Context) (*DynamicRegistrationCredentials, error)
Get returns the stored credentials, or nil if none exist.
func (*DynamicRegistrationColl) Save ¶ added in v0.5.7
func (c *DynamicRegistrationColl) Save(ctx context.Context, creds *DynamicRegistrationCredentials) error
Save stores or replaces dynamic registration credentials.
type DynamicRegistrationCredentials ¶
type DynamicRegistrationCredentials struct {
ClientID string `bson:"client_id"`
ClientSecret string `bson:"client_secret"`
RegistrationAccessToken string `bson:"registration_access_token,omitempty"`
RegistrationClientURI string `bson:"registration_client_uri,omitempty"`
ClientSecretExpiresAt int64 `bson:"client_secret_expires_at,omitempty"`
RegisteredAt time.Time `bson:"registered_at"`
}
DynamicRegistrationCredentials holds OIDC dynamic client registration credentials.
type IdentityMappingStore ¶ added in v0.5.7
type IdentityMappingStore interface {
CreateMapping(ctx context.Context, mapping *model.IdentityMapping) error
CreateMappings(ctx context.Context, mappings []*model.IdentityMapping) error
EnsureMapping(ctx context.Context, mapping *model.IdentityMapping) error
ResolveMapping(ctx context.Context, query *ResolveMappingQuery) (string, error)
UpdateMapping(ctx context.Context, mapping *model.IdentityMapping) error
DeleteMapping(ctx context.Context, query *DeleteMappingQuery) error
SearchMappings(ctx context.Context, query *SearchMappingsQuery) ([]*model.IdentityMapping, error)
}
IdentityMappingStore defines the interface for identity mapping operations
type IdentityMappingsColl ¶ added in v0.5.7
type IdentityMappingsColl struct {
Service *Service
Coll *mongo.Collection
// contains filtered or unexported fields
}
IdentityMappingsColl is the collection for identity mappings
func (*IdentityMappingsColl) CreateMapping ¶ added in v0.5.7
func (c *IdentityMappingsColl) CreateMapping(ctx context.Context, mapping *model.IdentityMapping) error
CreateMapping creates a new identity mapping
func (*IdentityMappingsColl) CreateMappings ¶ added in v0.5.7
func (c *IdentityMappingsColl) CreateMappings(ctx context.Context, mappings []*model.IdentityMapping) error
CreateMappings creates multiple identity mappings using bulk insert
func (*IdentityMappingsColl) DeleteMapping ¶ added in v0.5.7
func (c *IdentityMappingsColl) DeleteMapping(ctx context.Context, query *DeleteMappingQuery) error
DeleteMapping deletes an identity mapping
func (*IdentityMappingsColl) EnsureMapping ¶ added in v0.5.7
func (c *IdentityMappingsColl) EnsureMapping(ctx context.Context, mapping *model.IdentityMapping) error
EnsureMapping creates an identity mapping only if it does not already exist. If a record with the same (authentic_source, authentic_source_person_id) already exists, it is left unchanged.
func (*IdentityMappingsColl) ResolveMapping ¶ added in v0.5.7
func (c *IdentityMappingsColl) ResolveMapping(ctx context.Context, query *ResolveMappingQuery) (string, error)
ResolveMapping resolves identity attributes to an authentic_source_person_id.
func (*IdentityMappingsColl) SearchMappings ¶ added in v0.5.7
func (c *IdentityMappingsColl) SearchMappings(ctx context.Context, query *SearchMappingsQuery) ([]*model.IdentityMapping, error)
SearchMappings returns identity mappings matching a text search or filters, with a limit
func (*IdentityMappingsColl) UpdateMapping ¶ added in v0.5.7
func (c *IdentityMappingsColl) UpdateMapping(ctx context.Context, mapping *model.IdentityMapping) error
UpdateMapping updates the attributes of an existing identity mapping
type ListQuery ¶ added in v0.5.7
type ListQuery struct {
AuthenticSource string `json:"authentic_source" bson:"authentic_source"`
IdentityMappingID string `json:"identity_mapping_id" bson:"identity_mapping_id" validate:"required"`
Scope string `json:"scope" bson:"scope"`
ValidFrom int64 `json:"valid_from" bson:"valid_from"`
ValidTo int64 `json:"valid_to" bson:"valid_to"`
}
ListQuery is the query to get document list
type ResolveMappingQuery ¶ added in v0.5.7
type ResolveMappingQuery struct {
AuthenticSource string `json:"authentic_source"`
Attributes map[string]string `json:"attributes"`
}
ResolveMappingQuery is the query for resolving attributes to an authentic_source_person_id
type SearchDocumentsQuery ¶
type SearchDocumentsQuery struct {
Search string `json:"search"`
AuthenticSource string `json:"authentic_source"`
Scope string `json:"scope"`
Limit int64 `json:"limit"`
AllowedAuthenticSources []string `json:"-"`
AllowedScopes []string `json:"-"`
}
SearchDocumentsQuery is the query for searching documents
type SearchMappingsQuery ¶ added in v0.5.7
type SearchMappingsQuery struct {
Search string `json:"search"`
AuthenticSource string `json:"authentic_source"`
Limit int64 `json:"limit"`
AllowedAuthenticSources []string `json:"-"`
}
SearchMappingsQuery is the query for searching identity mappings
type Service ¶
type Service struct {
MongoClient *mongo.Client
DatastoreColl *DatastoreColl
IdentityMappingsColl *IdentityMappingsColl
CredentialOfferColl *CredentialOfferColl
DynamicRegistrationColl *DynamicRegistrationColl
// contains filtered or unexported fields
}
Service is the database service
func New ¶
func New(ctx context.Context, cfg *model.Cfg, tracer *trace.Tracer, log *logger.Log) (*Service, error)
New creates a new database service
func (*Service) Status ¶
func (s *Service) Status(ctx context.Context) *apiv1_status.StatusProbe
Status returns the status of the database