core

package
v0.0.15 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: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ActionDefinition

type ActionDefinition struct {
	ID          xid.ID    `bun:"id,pk"                json:"id"`
	NamespaceID xid.ID    `bun:"namespace_id,notnull" json:"namespaceId"`
	Name        string    `bun:"name,notnull"         json:"name"`
	Description string    `bun:"description"          json:"description"`
	CreatedAt   time.Time `bun:"created_at,notnull"   json:"createdAt"`
}

ActionDefinition defines a custom action for an organization.

type AuditEvent

type AuditEvent struct {
	ID                 xid.ID         `bun:"id,pk"                  json:"id"`
	AppID              xid.ID         `bun:"app_id,notnull"         json:"appId"`                        // Platform app (required)
	EnvironmentID      xid.ID         `bun:"environment_id,notnull" json:"environmentId"`                // Environment (required)
	UserOrganizationID *xid.ID        `bun:"user_organization_id"   json:"userOrganizationId,omitempty"` // User-created org (optional)
	ActorID            xid.ID         `bun:"actor_id,notnull"       json:"actorId"`
	Action             string         `bun:"action,notnull"         json:"action"`
	ResourceType       string         `bun:"resource_type"          json:"resourceType"`
	ResourceID         xid.ID         `bun:"resource_id"            json:"resourceId"`
	OldValue           map[string]any `bun:"old_value,type:jsonb"   json:"oldValue,omitempty"`
	NewValue           map[string]any `bun:"new_value,type:jsonb"   json:"newValue,omitempty"`
	IPAddress          string         `bun:"ip_address"             json:"ipAddress"`
	UserAgent          string         `bun:"user_agent"             json:"userAgent"`
	Timestamp          time.Time      `bun:"timestamp,notnull"      json:"timestamp"`
}

AuditEvent records a permission-related event V2 Architecture: App → Environment → Organization.

type MigrationStatus

type MigrationStatus struct {
	AppID              xid.ID     `json:"appId"`                        // Platform app
	EnvironmentID      xid.ID     `json:"environmentId"`                // Environment
	UserOrganizationID *xid.ID    `json:"userOrganizationId,omitempty"` // User-created org (optional)
	StartedAt          time.Time  `json:"startedAt"`
	CompletedAt        *time.Time `json:"completedAt,omitempty"`
	Status             string     `json:"status"` // pending, in_progress, completed, failed
	TotalPolicies      int        `json:"totalPolicies"`
	MigratedCount      int        `json:"migratedCount"`
	FailedCount        int        `json:"failedCount"`
	ValidationPassed   bool       `json:"validationPassed"`
	Errors             []string   `json:"errors,omitempty"`
}

MigrationStatus tracks RBAC to Permissions migration progress V2 Architecture: App → Environment → Organization.

type Namespace

type Namespace struct {
	ID                 xid.ID                `bun:"id,pk"                          json:"id"`
	AppID              xid.ID                `bun:"app_id,notnull"                 json:"appId"`                        // Platform app (required)
	EnvironmentID      xid.ID                `bun:"environment_id,notnull"         json:"environmentId"`                // Environment (required)
	UserOrganizationID *xid.ID               `bun:"user_organization_id"           json:"userOrganizationId,omitempty"` // User-created org (optional)
	Name               string                `bun:"name"                           json:"name"`
	Description        string                `bun:"description"                    json:"description"`
	TemplateID         *xid.ID               `bun:"template_id"                    json:"templateId,omitempty"`
	InheritPlatform    bool                  `bun:"inherit_platform,default:false" json:"inheritPlatform"`
	Resources          []*ResourceDefinition `bun:"-"                              json:"resources"`
	Actions            []*ActionDefinition   `bun:"-"                              json:"actions"`
	CreatedAt          time.Time             `bun:"created_at,notnull"             json:"createdAt"`
	UpdatedAt          time.Time             `bun:"updated_at,notnull"             json:"updatedAt"`
}

Namespace represents an organization-scoped policy namespace V2 Architecture: App → Environment → Organization.

type Policy

type Policy struct {
	ID                 xid.ID    `bun:"id,pk"                  json:"id"`
	AppID              xid.ID    `bun:"app_id,notnull"         json:"appId"`                        // Platform app (required)
	EnvironmentID      xid.ID    `bun:"environment_id,notnull" json:"environmentId"`                // Environment (required)
	UserOrganizationID *xid.ID   `bun:"user_organization_id"   json:"userOrganizationId,omitempty"` // User-created org (optional)
	NamespaceID        xid.ID    `bun:"namespace_id,notnull"   json:"namespaceId"`
	Name               string    `bun:"name,notnull"           json:"name"`
	Description        string    `bun:"description"            json:"description"`
	Expression         string    `bun:"expression,notnull"     json:"expression"`
	ResourceType       string    `bun:"resource_type,notnull"  json:"resourceType"`
	Actions            []string  `bun:"actions,array"          json:"actions"`
	Priority           int       `bun:"priority,default:0"     json:"priority"`
	Enabled            bool      `bun:"enabled,default:true"   json:"enabled"`
	Version            int       `bun:"version,default:1"      json:"version"`
	CreatedBy          xid.ID    `bun:"created_by"             json:"createdBy"`
	CreatedAt          time.Time `bun:"created_at,notnull"     json:"createdAt"`
	UpdatedAt          time.Time `bun:"updated_at,notnull"     json:"updatedAt"`
}

Policy represents a permission policy V2 Architecture: App → Environment → Organization.

type PolicyTemplate

type PolicyTemplate struct {
	ID          string              `json:"id"`
	Name        string              `json:"name"`
	Description string              `json:"description"`
	Category    string              `json:"category"`
	Expression  string              `json:"expression"`
	Parameters  []TemplateParameter `json:"parameters"`
	Examples    []string            `json:"examples"`
}

PolicyTemplate represents a reusable policy pattern.

type ResourceAttribute

type ResourceAttribute struct {
	Name        string `json:"name"`
	Type        string `json:"type"` // string, int, bool, array, object
	Required    bool   `json:"required"`
	Default     any    `json:"default,omitempty"`
	Description string `json:"description,omitempty"`
}

ResourceAttribute defines an attribute that can be used in policy expressions.

type ResourceDefinition

type ResourceDefinition struct {
	ID          xid.ID              `bun:"id,pk"                 json:"id"`
	NamespaceID xid.ID              `bun:"namespace_id,notnull"  json:"namespaceId"`
	Type        string              `bun:"type,notnull"          json:"type"`
	Description string              `bun:"description"           json:"description"`
	Attributes  []ResourceAttribute `bun:"attributes,type:jsonb" json:"attributes"`
	CreatedAt   time.Time           `bun:"created_at,notnull"    json:"createdAt"`
}

ResourceDefinition defines a custom resource type for an organization.

type TemplateParameter

type TemplateParameter struct {
	Name         string `json:"name"`
	Type         string `json:"type"`
	Description  string `json:"description"`
	Required     bool   `json:"required"`
	DefaultValue any    `json:"defaultValue,omitempty"`
}

TemplateParameter defines a parameter that can be substituted in a template.

Jump to

Keyboard shortcuts

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