schema

package
v0.0.10 Latest Latest
Warning

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

Go to latest
Published: Jan 3, 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]interface{} `bun:"config,type:jsonb" json:"config,omitempty"`
	Metadata map[string]interface{} `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]interface{} `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