schema

package
v0.0.16 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 11, 2026 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type SCIMProvider

type SCIMProvider struct {
	bun.BaseModel `bun:"table:scim_providers"`

	ID             xid.ID  `bun:"id,pk,type:varchar(20)"           json:"id"`
	AppID          xid.ID  `bun:"app_id,notnull,type:varchar(20)"  json:"app_id"`
	EnvironmentID  xid.ID  `bun:"environment_id,type:varchar(20)"  json:"environment_id"`
	OrganizationID *xid.ID `bun:"organization_id,type:varchar(20)" json:"organization_id,omitempty"`

	Name      string `bun:"name,notnull"      json:"name"`
	Type      string `bun:"type,notnull"      json:"type"`      // "okta", "azure_ad", "onelogin", "google_workspace", "custom"
	Direction string `bun:"direction,notnull" json:"direction"` // "inbound", "outbound", "bidirectional"

	// Inbound configuration (IdP → AuthSome)
	BaseURL    *string `bun:"base_url"    json:"base_url,omitempty"`
	AuthMethod string  `bun:"auth_method" json:"auth_method"` // "bearer", "oauth2"

	// Outbound configuration (AuthSome → External)
	TargetURL  *string `bun:"target_url"             json:"target_url,omitempty"`
	TargetAuth *string `bun:"target_auth,type:jsonb" json:"-"` // Encrypted auth credentials

	Status         string     `bun:"status"           json:"status"` // "active", "inactive", "error"
	LastSyncAt     *time.Time `bun:"last_sync_at"     json:"last_sync_at,omitempty"`
	LastSyncStatus string     `bun:"last_sync_status" json:"last_sync_status,omitempty"`

	Config   map[string]any `bun:"config,type:jsonb"   json:"config,omitempty"`
	Metadata map[string]any `bun:"metadata,type:jsonb" json:"metadata,omitempty"`

	CreatedAt time.Time `bun:"created_at,notnull,default:current_timestamp" json:"created_at"`
	UpdatedAt time.Time `bun:"updated_at,notnull,default:current_timestamp" json:"updated_at"`
}

SCIMProvider represents a SCIM identity provider configuration.

func (*SCIMProvider) BeforeInsert

func (p *SCIMProvider) BeforeInsert(ctx context.Context, db *bun.DB) error

BeforeInsert hook to set ID and timestamps.

func (*SCIMProvider) BeforeUpdate

func (p *SCIMProvider) BeforeUpdate(ctx context.Context, db *bun.DB) error

BeforeUpdate hook to update timestamp.

type SCIMSyncEvent

type SCIMSyncEvent struct {
	bun.BaseModel `bun:"table:scim_sync_events"`

	ID         xid.ID `bun:"id,pk,type:varchar(20)"               json:"id"`
	ProviderID xid.ID `bun:"provider_id,notnull,type:varchar(20)" json:"provider_id"`
	TokenID    xid.ID `bun:"token_id,type:varchar(20)"            json:"token_id,omitempty"`

	EventType string `bun:"event_type,notnull" json:"event_type"` // "user_create", "user_update", "user_delete", "group_create", etc.
	Direction string `bun:"direction"          json:"direction"`  // "inbound", "outbound"
	Status    string `bun:"status"             json:"status"`     // "success", "failed", "pending"

	ResourceType string  `bun:"resource_type"                json:"resource_type"` // "User", "Group"
	ResourceID   *xid.ID `bun:"resource_id,type:varchar(20)" json:"resource_id,omitempty"`
	ExternalID   *string `bun:"external_id"                  json:"external_id,omitempty"`

	Details      map[string]any `bun:"details,type:jsonb" json:"details,omitempty"`
	ErrorMessage *string        `bun:"error_message"      json:"error_message,omitempty"`

	Duration  int64     `bun:"duration_ms"                                  json:"duration_ms"` // Operation duration in milliseconds
	CreatedAt time.Time `bun:"created_at,notnull,default:current_timestamp" json:"created_at"`
}

SCIMSyncEvent represents a SCIM synchronization event for monitoring.

func (*SCIMSyncEvent) BeforeInsert

func (e *SCIMSyncEvent) BeforeInsert(ctx context.Context, db *bun.DB) error

BeforeInsert hook to set ID and timestamp.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL