phase 14-15: docker build validation and helm deployment

This commit is contained in:
Celes Renata
2026-04-11 11:59:45 -07:00
parent 7394d241c9
commit ce10afa034
179 changed files with 32559 additions and 576 deletions
@@ -0,0 +1,55 @@
-- Stonks Oracle - Portfolio and account risk configuration
-- Persists risk configuration profiles and tracks risk state snapshots.
-- Requirements: 8.1, 8.2, 8.4
-- ============================================================
-- Risk Configuration Profiles
-- ============================================================
CREATE TABLE risk_configs (
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
name VARCHAR(200) NOT NULL DEFAULT 'default',
trading_mode VARCHAR(20) NOT NULL DEFAULT 'paper',
config JSONB NOT NULL DEFAULT '{}',
active BOOLEAN NOT NULL DEFAULT TRUE,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
CREATE UNIQUE INDEX idx_risk_configs_active_name
ON risk_configs(name) WHERE active = TRUE;
-- ============================================================
-- Symbol-level lockouts (news-shock, cooldown)
-- ============================================================
CREATE TABLE symbol_lockouts (
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
ticker VARCHAR(20) NOT NULL,
lockout_type VARCHAR(50) NOT NULL,
reason TEXT DEFAULT '',
expires_at TIMESTAMPTZ NOT NULL,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
CREATE INDEX idx_symbol_lockouts_ticker ON symbol_lockouts(ticker, expires_at);
CREATE INDEX idx_symbol_lockouts_expiry ON symbol_lockouts(expires_at);
-- ============================================================
-- Daily risk snapshots (for daily loss tracking)
-- ============================================================
CREATE TABLE daily_risk_snapshots (
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
account_id VARCHAR(200) NOT NULL,
snapshot_date DATE NOT NULL DEFAULT CURRENT_DATE,
portfolio_value NUMERIC DEFAULT 0,
daily_pnl NUMERIC DEFAULT 0,
daily_trade_count INTEGER DEFAULT 0,
positions_by_sector JSONB DEFAULT '{}',
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
UNIQUE(account_id, snapshot_date)
);
CREATE INDEX idx_daily_risk_account ON daily_risk_snapshots(account_id, snapshot_date DESC);