mirror of
https://github.com/Dvorinka/Containr.git
synced 2026-10-28 15:51:26 +00:00
* refactor(db): port operations, settings, audit, activity, and misc service metadata to sqlc Covers the cross-cutting surface: operations board reads, app settings, notification producers, activity/audit inserts, builds upsert/cancel, git clone credential resolution, invites, environments, registry auth, project/service variables, HA resolver, boot sweeps, and admin user ops. Dynamic filtered lists and Better Auth table probes stay raw by design. Authored By: TDvorak <[email protected]> * refactor(db): port apwhy gateway handlers and proxy data plane to sqlc Final tranche — every static call site now uses generated queries. Raw SQL remains only where the statement is assembled at runtime (filtered lists, sparse updates, admin count closure) or probes Better Auth's auth_users table, which lives outside the local schema. Authored By: TDvorak <[email protected]>
718 lines
30 KiB
Go
718 lines
30 KiB
Go
// Code generated by sqlc. DO NOT EDIT.
|
|
// versions:
|
|
// sqlc v1.31.1
|
|
|
|
package sqlcdb
|
|
|
|
import (
|
|
"database/sql"
|
|
"encoding/json"
|
|
"time"
|
|
|
|
"github.com/google/uuid"
|
|
"github.com/sqlc-dev/pqtype"
|
|
)
|
|
|
|
type AgentAuthToken struct {
|
|
ID uuid.UUID `json:"id"`
|
|
TokenHash string `json:"token_hash"`
|
|
Label string `json:"label"`
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
LastUsedAt sql.NullTime `json:"last_used_at"`
|
|
RevokedAt sql.NullTime `json:"revoked_at"`
|
|
}
|
|
|
|
type AgentCommand struct {
|
|
ID string `json:"id"`
|
|
Type string `json:"type"`
|
|
NodeAgentID string `json:"node_agent_id"`
|
|
ContainerID sql.NullString `json:"container_id"`
|
|
Payload pqtype.NullRawMessage `json:"payload"`
|
|
Status sql.NullString `json:"status"`
|
|
Result sql.NullString `json:"result"`
|
|
Error sql.NullString `json:"error"`
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
UpdatedAt sql.NullTime `json:"updated_at"`
|
|
CompletedAt sql.NullTime `json:"completed_at"`
|
|
}
|
|
|
|
type AgentHeartbeat struct {
|
|
ID string `json:"id"`
|
|
NodeAgentID string `json:"node_agent_id"`
|
|
Timestamp time.Time `json:"timestamp"`
|
|
Status string `json:"status"`
|
|
Resources json.RawMessage `json:"resources"`
|
|
ContainerCount int32 `json:"container_count"`
|
|
SystemLoad json.RawMessage `json:"system_load"`
|
|
Uptime int64 `json:"uptime"`
|
|
Version string `json:"version"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
}
|
|
|
|
type ApiKey struct {
|
|
ID uuid.UUID `json:"id"`
|
|
Name string `json:"name"`
|
|
KeyHash string `json:"key_hash"`
|
|
KeyPrefix string `json:"key_prefix"`
|
|
Plan string `json:"plan"`
|
|
AllowedServiceIds string `json:"allowed_service_ids"`
|
|
Enabled int32 `json:"enabled"`
|
|
RpmLimit sql.NullInt32 `json:"rpm_limit"`
|
|
MonthlyQuota sql.NullInt32 `json:"monthly_quota"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
LastUsedAt sql.NullTime `json:"last_used_at"`
|
|
}
|
|
|
|
type ApiService struct {
|
|
ID uuid.UUID `json:"id"`
|
|
Name string `json:"name"`
|
|
Slug string `json:"slug"`
|
|
UpstreamUrl string `json:"upstream_url"`
|
|
RoutePrefix string `json:"route_prefix"`
|
|
HealthPath string `json:"health_path"`
|
|
UpstreamAuthHeader sql.NullString `json:"upstream_auth_header"`
|
|
UpstreamAuthValue sql.NullString `json:"upstream_auth_value"`
|
|
InternalToken sql.NullString `json:"internal_token"`
|
|
Enabled int32 `json:"enabled"`
|
|
RpmLimit sql.NullInt32 `json:"rpm_limit"`
|
|
MonthlyQuota sql.NullInt32 `json:"monthly_quota"`
|
|
RequestTimeoutMs sql.NullInt32 `json:"request_timeout_ms"`
|
|
LastValidationAt sql.NullTime `json:"last_validation_at"`
|
|
LastValidationStatus sql.NullString `json:"last_validation_status"`
|
|
LastValidationMessage sql.NullString `json:"last_validation_message"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
}
|
|
|
|
type AppSetting struct {
|
|
Key string `json:"key"`
|
|
Value string `json:"value"`
|
|
IsSecret bool `json:"is_secret"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
}
|
|
|
|
type AuditLog struct {
|
|
ID uuid.UUID `json:"id"`
|
|
Timestamp time.Time `json:"timestamp"`
|
|
UserID uuid.NullUUID `json:"user_id"`
|
|
Action string `json:"action"`
|
|
Resource string `json:"resource"`
|
|
ResourceID uuid.NullUUID `json:"resource_id"`
|
|
Details pqtype.NullRawMessage `json:"details"`
|
|
IpAddress pqtype.Inet `json:"ip_address"`
|
|
UserAgent sql.NullString `json:"user_agent"`
|
|
Success bool `json:"success"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
Severity string `json:"severity"`
|
|
Category string `json:"category"`
|
|
Label string `json:"label"`
|
|
}
|
|
|
|
type BackupTarget struct {
|
|
ID string `json:"id"`
|
|
UserID string `json:"user_id"`
|
|
Name string `json:"name"`
|
|
Endpoint string `json:"endpoint"`
|
|
Bucket string `json:"bucket"`
|
|
Region string `json:"region"`
|
|
Prefix string `json:"prefix"`
|
|
AccessKey string `json:"access_key"`
|
|
SecretKey string `json:"secret_key"`
|
|
UseTls bool `json:"use_tls"`
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
UpdatedAt sql.NullTime `json:"updated_at"`
|
|
}
|
|
|
|
type Banner struct {
|
|
ID uuid.UUID `json:"id"`
|
|
Title string `json:"title"`
|
|
Body string `json:"body"`
|
|
Level string `json:"level"`
|
|
Active bool `json:"active"`
|
|
Dismissible bool `json:"dismissible"`
|
|
CreatedBy uuid.NullUUID `json:"created_by"`
|
|
StartsAt sql.NullTime `json:"starts_at"`
|
|
EndsAt sql.NullTime `json:"ends_at"`
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
UpdatedAt sql.NullTime `json:"updated_at"`
|
|
}
|
|
|
|
type Build struct {
|
|
ID string `json:"id"`
|
|
ProjectID sql.NullString `json:"project_id"`
|
|
ServiceID sql.NullString `json:"service_id"`
|
|
Status string `json:"status"`
|
|
Progress int32 `json:"progress"`
|
|
StartedAt time.Time `json:"started_at"`
|
|
CompletedAt sql.NullTime `json:"completed_at"`
|
|
ImageName string `json:"image_name"`
|
|
ImageTag string `json:"image_tag"`
|
|
Size int64 `json:"size"`
|
|
Error sql.NullString `json:"error"`
|
|
Log string `json:"log"`
|
|
Metadata json.RawMessage `json:"metadata"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
}
|
|
|
|
type ComplianceFramework struct {
|
|
ID uuid.UUID `json:"id"`
|
|
Name string `json:"name"`
|
|
Description sql.NullString `json:"description"`
|
|
Version string `json:"version"`
|
|
Enabled bool `json:"enabled"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
}
|
|
|
|
type ComplianceReport struct {
|
|
ID uuid.UUID `json:"id"`
|
|
ProjectID uuid.UUID `json:"project_id"`
|
|
FrameworkID uuid.UUID `json:"framework_id"`
|
|
AssessmentDate time.Time `json:"assessment_date"`
|
|
Assessor sql.NullString `json:"assessor"`
|
|
OverallStatus string `json:"overall_status"`
|
|
Score int32 `json:"score"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
}
|
|
|
|
type ContainerInstance struct {
|
|
ID string `json:"id"`
|
|
Name string `json:"name"`
|
|
Image string `json:"image"`
|
|
ProjectID string `json:"project_id"`
|
|
ServiceID string `json:"service_id"`
|
|
NodeAgentID string `json:"node_agent_id"`
|
|
Status pqtype.NullRawMessage `json:"status"`
|
|
Resources pqtype.NullRawMessage `json:"resources"`
|
|
Ports pqtype.NullRawMessage `json:"ports"`
|
|
Environment pqtype.NullRawMessage `json:"environment"`
|
|
Volumes pqtype.NullRawMessage `json:"volumes"`
|
|
Networks pqtype.NullRawMessage `json:"networks"`
|
|
RestartPolicy pqtype.NullRawMessage `json:"restart_policy"`
|
|
HealthCheck pqtype.NullRawMessage `json:"health_check"`
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
StartedAt sql.NullTime `json:"started_at"`
|
|
UpdatedAt sql.NullTime `json:"updated_at"`
|
|
}
|
|
|
|
type CronExecution struct {
|
|
ID uuid.UUID `json:"id"`
|
|
CronJobID uuid.UUID `json:"cron_job_id"`
|
|
StartedAt time.Time `json:"started_at"`
|
|
FinishedAt sql.NullTime `json:"finished_at"`
|
|
Status sql.NullString `json:"status"`
|
|
Output sql.NullString `json:"output"`
|
|
Error sql.NullString `json:"error"`
|
|
}
|
|
|
|
type CronJob struct {
|
|
ID uuid.UUID `json:"id"`
|
|
ProjectID uuid.UUID `json:"project_id"`
|
|
ServiceID uuid.UUID `json:"service_id"`
|
|
Name string `json:"name"`
|
|
Schedule string `json:"schedule"`
|
|
Command string `json:"command"`
|
|
Timezone sql.NullString `json:"timezone"`
|
|
Enabled sql.NullBool `json:"enabled"`
|
|
LastRunAt sql.NullTime `json:"last_run_at"`
|
|
NextRunAt sql.NullTime `json:"next_run_at"`
|
|
LastStatus sql.NullString `json:"last_status"`
|
|
LastOutput sql.NullString `json:"last_output"`
|
|
Retention sql.NullInt32 `json:"retention"`
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
UpdatedAt sql.NullTime `json:"updated_at"`
|
|
}
|
|
|
|
type DatabaseBackup struct {
|
|
ID string `json:"id"`
|
|
DatabaseID string `json:"database_id"`
|
|
Size string `json:"size"`
|
|
Status string `json:"status"`
|
|
BackupPath sql.NullString `json:"backup_path"`
|
|
RemoteKey sql.NullString `json:"remote_key"`
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
CompletedAt sql.NullTime `json:"completed_at"`
|
|
}
|
|
|
|
type DatabaseService struct {
|
|
ID string `json:"id"`
|
|
UserID string `json:"user_id"`
|
|
Name string `json:"name"`
|
|
Type string `json:"type"`
|
|
Status string `json:"status"`
|
|
Version string `json:"version"`
|
|
Plan string `json:"plan"`
|
|
Region string `json:"region"`
|
|
ConnectionUrl sql.NullString `json:"connection_url"`
|
|
BackupSchedule sql.NullString `json:"backup_schedule"`
|
|
NextBackupAt sql.NullTime `json:"next_backup_at"`
|
|
Provider string `json:"provider"`
|
|
ExternalHost sql.NullString `json:"external_host"`
|
|
ExternalPort sql.NullInt32 `json:"external_port"`
|
|
ExternalName sql.NullString `json:"external_name"`
|
|
ExternalUsername sql.NullString `json:"external_username"`
|
|
ExternalPassword string `json:"external_password"`
|
|
ExternalSsl bool `json:"external_ssl"`
|
|
PublicPort bool `json:"public_port"`
|
|
BackupTargetID sql.NullString `json:"backup_target_id"`
|
|
ProjectID uuid.NullUUID `json:"project_id"`
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
UpdatedAt sql.NullTime `json:"updated_at"`
|
|
}
|
|
|
|
type Deployment struct {
|
|
ID uuid.UUID `json:"id"`
|
|
ServiceID uuid.UUID `json:"service_id"`
|
|
Version string `json:"version"`
|
|
CommitHash sql.NullString `json:"commit_hash"`
|
|
ImageDigest sql.NullString `json:"image_digest"`
|
|
Status sql.NullString `json:"status"`
|
|
BuildLog sql.NullString `json:"build_log"`
|
|
DeploymentLog sql.NullString `json:"deployment_log"`
|
|
StartedAt sql.NullTime `json:"started_at"`
|
|
CompletedAt sql.NullTime `json:"completed_at"`
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
UpdatedAt sql.NullTime `json:"updated_at"`
|
|
ImageName sql.NullString `json:"image_name"`
|
|
ImageTag sql.NullString `json:"image_tag"`
|
|
RuntimeLog sql.NullString `json:"runtime_log"`
|
|
Error sql.NullString `json:"error"`
|
|
}
|
|
|
|
type Environment struct {
|
|
ID uuid.UUID `json:"id"`
|
|
Name string `json:"name"`
|
|
ProjectID uuid.UUID `json:"project_id"`
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
UpdatedAt sql.NullTime `json:"updated_at"`
|
|
}
|
|
|
|
type EnvironmentVariable struct {
|
|
ID uuid.UUID `json:"id"`
|
|
ServiceID uuid.UUID `json:"service_id"`
|
|
Key string `json:"key"`
|
|
Value string `json:"value"`
|
|
IsSecret sql.NullBool `json:"is_secret"`
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
UpdatedAt sql.NullTime `json:"updated_at"`
|
|
}
|
|
|
|
type GitProvider struct {
|
|
ID uuid.UUID `json:"id"`
|
|
Name string `json:"name"`
|
|
DisplayName string `json:"display_name"`
|
|
ApiUrl string `json:"api_url"`
|
|
WebhookUrl string `json:"webhook_url"`
|
|
AccessToken string `json:"access_token"`
|
|
UserID uuid.UUID `json:"user_id"`
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
UpdatedAt sql.NullTime `json:"updated_at"`
|
|
}
|
|
|
|
type GitRepository struct {
|
|
ID uuid.UUID `json:"id"`
|
|
ProviderID uuid.UUID `json:"provider_id"`
|
|
Name string `json:"name"`
|
|
FullName string `json:"full_name"`
|
|
Description sql.NullString `json:"description"`
|
|
CloneUrl string `json:"clone_url"`
|
|
WebhookUrl sql.NullString `json:"webhook_url"`
|
|
DefaultBranch sql.NullString `json:"default_branch"`
|
|
IsPrivate sql.NullBool `json:"is_private"`
|
|
UserID uuid.UUID `json:"user_id"`
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
UpdatedAt sql.NullTime `json:"updated_at"`
|
|
}
|
|
|
|
type GitWebhook struct {
|
|
ID uuid.UUID `json:"id"`
|
|
RepoID uuid.UUID `json:"repo_id"`
|
|
ProviderID uuid.UUID `json:"provider_id"`
|
|
Events string `json:"events"`
|
|
WebhookSecret string `json:"webhook_secret"`
|
|
RemoteWebhookID sql.NullString `json:"remote_webhook_id"`
|
|
Active sql.NullBool `json:"active"`
|
|
BranchFilter sql.NullString `json:"branch_filter"`
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
UpdatedAt sql.NullTime `json:"updated_at"`
|
|
}
|
|
|
|
type IncidentEvent struct {
|
|
ID int32 `json:"id"`
|
|
ServiceID uuid.NullUUID `json:"service_id"`
|
|
ApiKeyID uuid.NullUUID `json:"api_key_id"`
|
|
Code string `json:"code"`
|
|
Message string `json:"message"`
|
|
Severity string `json:"severity"`
|
|
HttpStatus sql.NullInt32 `json:"http_status"`
|
|
Count int32 `json:"count"`
|
|
OccurredAt time.Time `json:"occurred_at"`
|
|
}
|
|
|
|
type InstanceMetric struct {
|
|
ServiceID string `json:"service_id"`
|
|
Timestamp time.Time `json:"timestamp"`
|
|
InstanceID string `json:"instance_id"`
|
|
NodeID sql.NullString `json:"node_id"`
|
|
Status sql.NullString `json:"status"`
|
|
Cpu sql.NullString `json:"cpu"`
|
|
Memory sql.NullInt64 `json:"memory"`
|
|
NetworkBytesIn sql.NullInt64 `json:"network_bytes_in"`
|
|
NetworkBytesOut sql.NullInt64 `json:"network_bytes_out"`
|
|
NetworkPacketsIn sql.NullInt64 `json:"network_packets_in"`
|
|
NetworkPacketsOut sql.NullInt64 `json:"network_packets_out"`
|
|
NetworkConnectionsIn sql.NullInt32 `json:"network_connections_in"`
|
|
NetworkConnectionsOut sql.NullInt32 `json:"network_connections_out"`
|
|
NetworkErrorsIn sql.NullInt64 `json:"network_errors_in"`
|
|
NetworkErrorsOut sql.NullInt64 `json:"network_errors_out"`
|
|
StartTime sql.NullTime `json:"start_time"`
|
|
LastSeen sql.NullTime `json:"last_seen"`
|
|
HealthStatus sql.NullString `json:"health_status"`
|
|
HealthLastCheck sql.NullTime `json:"health_last_check"`
|
|
HealthCheckCount sql.NullInt32 `json:"health_check_count"`
|
|
HealthFailureCount sql.NullInt32 `json:"health_failure_count"`
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
}
|
|
|
|
type MetricsTimeseries struct {
|
|
ID int32 `json:"id"`
|
|
Metric string `json:"metric"`
|
|
Value float32 `json:"value"`
|
|
LabelsJson sql.NullString `json:"labels_json"`
|
|
OccurredAt time.Time `json:"occurred_at"`
|
|
}
|
|
|
|
type NodeAgent struct {
|
|
ID string `json:"id"`
|
|
Name string `json:"name"`
|
|
Hostname string `json:"hostname"`
|
|
IpAddress string `json:"ip_address"`
|
|
Port int32 `json:"port"`
|
|
Status sql.NullString `json:"status"`
|
|
Version sql.NullString `json:"version"`
|
|
Capabilities pqtype.NullRawMessage `json:"capabilities"`
|
|
Resources pqtype.NullRawMessage `json:"resources"`
|
|
LastHeartbeat sql.NullTime `json:"last_heartbeat"`
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
UpdatedAt sql.NullTime `json:"updated_at"`
|
|
Metadata pqtype.NullRawMessage `json:"metadata"`
|
|
AutoPrune bool `json:"auto_prune"`
|
|
Schedulable bool `json:"schedulable"`
|
|
Tags json.RawMessage `json:"tags"`
|
|
DefaultDomain string `json:"default_domain"`
|
|
}
|
|
|
|
type NodeMetric struct {
|
|
NodeID string `json:"node_id"`
|
|
Timestamp time.Time `json:"timestamp"`
|
|
CpuUsage sql.NullString `json:"cpu_usage"`
|
|
CpuCores sql.NullString `json:"cpu_cores"`
|
|
LoadAvg1 sql.NullString `json:"load_avg_1"`
|
|
LoadAvg5 sql.NullString `json:"load_avg_5"`
|
|
LoadAvg15 sql.NullString `json:"load_avg_15"`
|
|
MemoryTotal sql.NullInt64 `json:"memory_total"`
|
|
MemoryUsed sql.NullInt64 `json:"memory_used"`
|
|
MemoryAvailable sql.NullInt64 `json:"memory_available"`
|
|
MemoryUsagePercent sql.NullString `json:"memory_usage_percent"`
|
|
StorageTotal sql.NullInt64 `json:"storage_total"`
|
|
StorageUsed sql.NullInt64 `json:"storage_used"`
|
|
StorageAvailable sql.NullInt64 `json:"storage_available"`
|
|
StorageUsagePercent sql.NullString `json:"storage_usage_percent"`
|
|
NetworkBytesIn sql.NullInt64 `json:"network_bytes_in"`
|
|
NetworkBytesOut sql.NullInt64 `json:"network_bytes_out"`
|
|
NetworkPacketsIn sql.NullInt64 `json:"network_packets_in"`
|
|
NetworkPacketsOut sql.NullInt64 `json:"network_packets_out"`
|
|
NetworkConnectionsIn sql.NullInt32 `json:"network_connections_in"`
|
|
NetworkConnectionsOut sql.NullInt32 `json:"network_connections_out"`
|
|
NetworkErrorsIn sql.NullInt64 `json:"network_errors_in"`
|
|
NetworkErrorsOut sql.NullInt64 `json:"network_errors_out"`
|
|
Uptime sql.NullInt64 `json:"uptime"`
|
|
Processes sql.NullInt32 `json:"processes"`
|
|
Os sql.NullString `json:"os"`
|
|
Kernel sql.NullString `json:"kernel"`
|
|
Architecture sql.NullString `json:"architecture"`
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
}
|
|
|
|
type Notification struct {
|
|
ID uuid.UUID `json:"id"`
|
|
UserID uuid.UUID `json:"user_id"`
|
|
Kind string `json:"kind"`
|
|
Title string `json:"title"`
|
|
Body sql.NullString `json:"body"`
|
|
ResourceType sql.NullString `json:"resource_type"`
|
|
ResourceID sql.NullString `json:"resource_id"`
|
|
ReadAt sql.NullTime `json:"read_at"`
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
}
|
|
|
|
type NotificationChannel struct {
|
|
ID uuid.UUID `json:"id"`
|
|
UserID uuid.UUID `json:"user_id"`
|
|
Kind string `json:"kind"`
|
|
Endpoint string `json:"endpoint"`
|
|
Token sql.NullString `json:"token"`
|
|
Enabled bool `json:"enabled"`
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
UpdatedAt sql.NullTime `json:"updated_at"`
|
|
}
|
|
|
|
type OutboundWebhook struct {
|
|
ID uuid.UUID `json:"id"`
|
|
UserID uuid.UUID `json:"user_id"`
|
|
Name string `json:"name"`
|
|
Url string `json:"url"`
|
|
Secret string `json:"secret"`
|
|
Events json.RawMessage `json:"events"`
|
|
Headers pqtype.NullRawMessage `json:"headers"`
|
|
Enabled bool `json:"enabled"`
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
UpdatedAt sql.NullTime `json:"updated_at"`
|
|
}
|
|
|
|
type PreviewEnvironment struct {
|
|
ID uuid.UUID `json:"id"`
|
|
ProjectID uuid.UUID `json:"project_id"`
|
|
ServiceID uuid.UUID `json:"service_id"`
|
|
BranchName string `json:"branch_name"`
|
|
PrNumber sql.NullInt32 `json:"pr_number"`
|
|
Environment string `json:"environment"`
|
|
Status string `json:"status"`
|
|
Url sql.NullString `json:"url"`
|
|
ExpiresAt time.Time `json:"expires_at"`
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
UpdatedAt sql.NullTime `json:"updated_at"`
|
|
PreviewServiceID uuid.NullUUID `json:"preview_service_id"`
|
|
}
|
|
|
|
type Project struct {
|
|
ID uuid.UUID `json:"id"`
|
|
Name string `json:"name"`
|
|
Description sql.NullString `json:"description"`
|
|
OwnerID uuid.UUID `json:"owner_id"`
|
|
IsApproved bool `json:"is_approved"`
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
UpdatedAt sql.NullTime `json:"updated_at"`
|
|
}
|
|
|
|
type ProjectMember struct {
|
|
ID uuid.UUID `json:"id"`
|
|
ProjectID uuid.UUID `json:"project_id"`
|
|
UserID uuid.UUID `json:"user_id"`
|
|
Role string `json:"role"`
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
}
|
|
|
|
type ProjectVariable struct {
|
|
ID uuid.UUID `json:"id"`
|
|
ProjectID uuid.UUID `json:"project_id"`
|
|
Key string `json:"key"`
|
|
Value string `json:"value"`
|
|
IsSecret bool `json:"is_secret"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
}
|
|
|
|
type Registry struct {
|
|
ID uuid.UUID `json:"id"`
|
|
OwnerID uuid.UUID `json:"owner_id"`
|
|
Name string `json:"name"`
|
|
Host string `json:"host"`
|
|
Username string `json:"username"`
|
|
Password string `json:"password"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
}
|
|
|
|
type SecurityScan struct {
|
|
ID uuid.UUID `json:"id"`
|
|
ProjectID uuid.UUID `json:"project_id"`
|
|
ServiceID uuid.NullUUID `json:"service_id"`
|
|
ScanType string `json:"scan_type"`
|
|
Status string `json:"status"`
|
|
StartedAt time.Time `json:"started_at"`
|
|
CompletedAt sql.NullTime `json:"completed_at"`
|
|
Summary pqtype.NullRawMessage `json:"summary"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
}
|
|
|
|
type Service struct {
|
|
ID uuid.UUID `json:"id"`
|
|
Name string `json:"name"`
|
|
Description sql.NullString `json:"description"`
|
|
ProjectID uuid.UUID `json:"project_id"`
|
|
EnvironmentID uuid.UUID `json:"environment_id"`
|
|
ServiceType string `json:"service_type"`
|
|
SourceType string `json:"source_type"`
|
|
SourceUrl sql.NullString `json:"source_url"`
|
|
ImageName sql.NullString `json:"image_name"`
|
|
BuildCommand sql.NullString `json:"build_command"`
|
|
StartCommand sql.NullString `json:"start_command"`
|
|
CpuLimit sql.NullInt32 `json:"cpu_limit"`
|
|
MemoryLimit sql.NullInt32 `json:"memory_limit"`
|
|
PublicUrl sql.NullString `json:"public_url"`
|
|
HealthCheckUrl sql.NullString `json:"health_check_url"`
|
|
Status sql.NullString `json:"status"`
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
UpdatedAt sql.NullTime `json:"updated_at"`
|
|
Type sql.NullString `json:"type"`
|
|
Image sql.NullString `json:"image"`
|
|
Command sql.NullString `json:"command"`
|
|
Environment sql.NullString `json:"environment"`
|
|
GitRepo sql.NullString `json:"git_repo"`
|
|
GitBranch sql.NullString `json:"git_branch"`
|
|
BuildPath sql.NullString `json:"build_path"`
|
|
Cpu sql.NullString `json:"cpu"`
|
|
Memory sql.NullString `json:"memory"`
|
|
Replicas int32 `json:"replicas"`
|
|
Port int32 `json:"port"`
|
|
Domain string `json:"domain"`
|
|
HealthcheckPath string `json:"healthcheck_path"`
|
|
RestartPolicy string `json:"restart_policy"`
|
|
PublishedPort int32 `json:"published_port"`
|
|
Volumes json.RawMessage `json:"volumes"`
|
|
MaintenanceMode bool `json:"maintenance_mode"`
|
|
BasicAuthUsers string `json:"basic_auth_users"`
|
|
Builder string `json:"builder"`
|
|
CpuReserve string `json:"cpu_reserve"`
|
|
MemoryReserve string `json:"memory_reserve"`
|
|
StaticBuildCmd string `json:"static_build_cmd"`
|
|
StaticDir string `json:"static_dir"`
|
|
NodeID sql.NullString `json:"node_id"`
|
|
Spread bool `json:"spread"`
|
|
SleepEnabled bool `json:"sleep_enabled"`
|
|
SleepIdleMinutes int32 `json:"sleep_idle_minutes"`
|
|
PlacementTags json.RawMessage `json:"placement_tags"`
|
|
TraefikLabels json.RawMessage `json:"traefik_labels"`
|
|
}
|
|
|
|
type ServiceDomain struct {
|
|
ID uuid.UUID `json:"id"`
|
|
ServiceID uuid.UUID `json:"service_id"`
|
|
Domain string `json:"domain"`
|
|
IsDefault bool `json:"is_default"`
|
|
CertType string `json:"cert_type"`
|
|
CertStatus string `json:"cert_status"`
|
|
LastCheckedAt sql.NullTime `json:"last_checked_at"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
}
|
|
|
|
type ServiceMetric struct {
|
|
ServiceID string `json:"service_id"`
|
|
ServiceName string `json:"service_name"`
|
|
ProjectID string `json:"project_id"`
|
|
Timestamp time.Time `json:"timestamp"`
|
|
RequestsTotal sql.NullInt64 `json:"requests_total"`
|
|
RequestsSuccess sql.NullInt64 `json:"requests_success"`
|
|
RequestsErrors sql.NullInt64 `json:"requests_errors"`
|
|
RequestsAvgLatency sql.NullString `json:"requests_avg_latency"`
|
|
RequestsP95Latency sql.NullString `json:"requests_p95_latency"`
|
|
RequestsP99Latency sql.NullString `json:"requests_p99_latency"`
|
|
RequestsThroughput sql.NullString `json:"requests_throughput"`
|
|
ErrorsTotal sql.NullInt64 `json:"errors_total"`
|
|
ErrorsRate sql.NullString `json:"errors_rate"`
|
|
PerformanceResponseTime sql.NullString `json:"performance_response_time"`
|
|
PerformanceThroughput sql.NullString `json:"performance_throughput"`
|
|
PerformanceConcurrency sql.NullInt64 `json:"performance_concurrency"`
|
|
PerformanceSaturation sql.NullString `json:"performance_saturation"`
|
|
PerformanceUtilization sql.NullString `json:"performance_utilization"`
|
|
ResourceCpuUsage sql.NullString `json:"resource_cpu_usage"`
|
|
ResourceMemoryUsage sql.NullInt64 `json:"resource_memory_usage"`
|
|
ResourceStorageUsage sql.NullInt64 `json:"resource_storage_usage"`
|
|
ResourceNetworkUsage sql.NullInt64 `json:"resource_network_usage"`
|
|
ResourceScore sql.NullString `json:"resource_score"`
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
}
|
|
|
|
type ServiceTemplate struct {
|
|
ID string `json:"id"`
|
|
Name string `json:"name"`
|
|
Description sql.NullString `json:"description"`
|
|
Category string `json:"category"`
|
|
Logo sql.NullString `json:"logo"`
|
|
Config json.RawMessage `json:"config"`
|
|
Variables pqtype.NullRawMessage `json:"variables"`
|
|
IsOfficial sql.NullBool `json:"is_official"`
|
|
OwnerID uuid.NullUUID `json:"owner_id"`
|
|
IsPublic bool `json:"is_public"`
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
UpdatedAt sql.NullTime `json:"updated_at"`
|
|
}
|
|
|
|
type UsageCounter struct {
|
|
ID int32 `json:"id"`
|
|
ApiKeyID uuid.UUID `json:"api_key_id"`
|
|
ServiceID uuid.UUID `json:"service_id"`
|
|
PeriodMonth string `json:"period_month"`
|
|
RequestCount int32 `json:"request_count"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
}
|
|
|
|
type User struct {
|
|
ID uuid.UUID `json:"id"`
|
|
Email string `json:"email"`
|
|
PasswordHash string `json:"password_hash"`
|
|
Name string `json:"name"`
|
|
AvatarUrl sql.NullString `json:"avatar_url"`
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
UpdatedAt sql.NullTime `json:"updated_at"`
|
|
IsAdmin bool `json:"is_admin"`
|
|
}
|
|
|
|
type UserInvite struct {
|
|
ID uuid.UUID `json:"id"`
|
|
TokenHash string `json:"token_hash"`
|
|
Email sql.NullString `json:"email"`
|
|
CreatedBy uuid.NullUUID `json:"created_by"`
|
|
ExpiresAt time.Time `json:"expires_at"`
|
|
UsedBy uuid.NullUUID `json:"used_by"`
|
|
UsedAt sql.NullTime `json:"used_at"`
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
}
|
|
|
|
type UserToken struct {
|
|
ID uuid.UUID `json:"id"`
|
|
UserID uuid.UUID `json:"user_id"`
|
|
Name string `json:"name"`
|
|
KeyPrefix string `json:"key_prefix"`
|
|
TokenHash string `json:"token_hash"`
|
|
Scope string `json:"scope"`
|
|
ExpiresAt sql.NullTime `json:"expires_at"`
|
|
LastUsedAt sql.NullTime `json:"last_used_at"`
|
|
RevokedAt sql.NullTime `json:"revoked_at"`
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
}
|
|
|
|
type Vulnerability struct {
|
|
ID uuid.UUID `json:"id"`
|
|
Type string `json:"type"`
|
|
Severity string `json:"severity"`
|
|
Title string `json:"title"`
|
|
Description sql.NullString `json:"description"`
|
|
ServiceID uuid.NullUUID `json:"service_id"`
|
|
ProjectID uuid.UUID `json:"project_id"`
|
|
Status string `json:"status"`
|
|
FoundAt time.Time `json:"found_at"`
|
|
ResolvedAt sql.NullTime `json:"resolved_at"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
}
|
|
|
|
type WebhookDelivery struct {
|
|
ID uuid.UUID `json:"id"`
|
|
WebhookID uuid.UUID `json:"webhook_id"`
|
|
Event string `json:"event"`
|
|
Payload pqtype.NullRawMessage `json:"payload"`
|
|
Status string `json:"status"`
|
|
ResponseStatus sql.NullInt32 `json:"response_status"`
|
|
ResponseBody sql.NullString `json:"response_body"`
|
|
Attempts int32 `json:"attempts"`
|
|
DurationMs sql.NullInt32 `json:"duration_ms"`
|
|
CreatedAt sql.NullTime `json:"created_at"`
|
|
DeliveredAt sql.NullTime `json:"delivered_at"`
|
|
}
|