35 lines
1.2 KiB
MySQL
35 lines
1.2 KiB
MySQL
|
|
-- V002: License minter integration
|
||
|
|
-- Ed25519 signing keys for license minting
|
||
|
|
CREATE TABLE signing_keys (
|
||
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||
|
|
public_key_b64 TEXT NOT NULL,
|
||
|
|
private_key_b64 TEXT NOT NULL,
|
||
|
|
active BOOLEAN NOT NULL DEFAULT TRUE,
|
||
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||
|
|
);
|
||
|
|
|
||
|
|
-- Rename tiers: LOW→STARTER, MID→TEAM, HIGH→BUSINESS, BUSINESS→ENTERPRISE
|
||
|
|
-- Single CASE pass to avoid double-rename
|
||
|
|
UPDATE tenants SET tier = CASE tier
|
||
|
|
WHEN 'LOW' THEN 'STARTER'
|
||
|
|
WHEN 'MID' THEN 'TEAM'
|
||
|
|
WHEN 'HIGH' THEN 'BUSINESS'
|
||
|
|
WHEN 'BUSINESS' THEN 'ENTERPRISE'
|
||
|
|
ELSE tier
|
||
|
|
END WHERE tier IN ('LOW', 'MID', 'HIGH', 'BUSINESS');
|
||
|
|
|
||
|
|
UPDATE licenses SET tier = CASE tier
|
||
|
|
WHEN 'LOW' THEN 'STARTER'
|
||
|
|
WHEN 'MID' THEN 'TEAM'
|
||
|
|
WHEN 'HIGH' THEN 'BUSINESS'
|
||
|
|
WHEN 'BUSINESS' THEN 'ENTERPRISE'
|
||
|
|
ELSE tier
|
||
|
|
END WHERE tier IN ('LOW', 'MID', 'HIGH', 'BUSINESS');
|
||
|
|
|
||
|
|
-- Add new license columns for Ed25519 model
|
||
|
|
ALTER TABLE licenses ADD COLUMN label VARCHAR(255);
|
||
|
|
ALTER TABLE licenses ADD COLUMN grace_period_days INTEGER NOT NULL DEFAULT 0;
|
||
|
|
|
||
|
|
-- Drop features column (server enforces caps, not feature flags)
|
||
|
|
ALTER TABLE licenses DROP COLUMN features;
|