Update to Skynet v7 - Complete documentation restructure
- Nueva estructura de carpetas según Skynet v7 - Añadidos schemas SQL completos - Documentación de entidades, componentes e integraciones - Modelo de seguridad actualizado - Infraestructura y operaciones reorganizadas
This commit is contained in:
50
03_MODELO_DATOS/schemas/06_clara.sql
Normal file
50
03_MODELO_DATOS/schemas/06_clara.sql
Normal file
@@ -0,0 +1,50 @@
|
||||
-- Inicialización de la base de datos para CLARA
|
||||
-- Servicio inmutable de log de entrada
|
||||
|
||||
-- Tabla principal: clara_log
|
||||
CREATE TABLE IF NOT EXISTS clara_log (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
h_instancia VARCHAR(64) NOT NULL,
|
||||
h_entrada VARCHAR(64) NOT NULL,
|
||||
contenedor JSONB NOT NULL,
|
||||
r2_paths JSONB,
|
||||
created_at TIMESTAMP DEFAULT NOW()
|
||||
);
|
||||
|
||||
-- Índices para búsqueda eficiente
|
||||
CREATE INDEX IF NOT EXISTS idx_clara_instancia ON clara_log(h_instancia);
|
||||
CREATE INDEX IF NOT EXISTS idx_clara_entrada ON clara_log(h_entrada);
|
||||
CREATE INDEX IF NOT EXISTS idx_clara_created ON clara_log(created_at DESC);
|
||||
|
||||
-- Índice para buscar por estado del contenedor
|
||||
CREATE INDEX IF NOT EXISTS idx_clara_estado ON clara_log((contenedor->'estado'->>'actual'));
|
||||
|
||||
-- Índice para buscar por timestamp de captura
|
||||
CREATE INDEX IF NOT EXISTS idx_clara_timestamp ON clara_log((contenedor->'origen'->>'timestamp_captura'));
|
||||
|
||||
-- Índice compuesto para búsquedas frecuentes
|
||||
CREATE INDEX IF NOT EXISTS idx_clara_inst_entrada ON clara_log(h_instancia, h_entrada);
|
||||
|
||||
-- Vista para consultas comunes
|
||||
CREATE OR REPLACE VIEW clara_summary AS
|
||||
SELECT
|
||||
id,
|
||||
h_instancia,
|
||||
h_entrada,
|
||||
contenedor->>'id' as contenedor_id,
|
||||
contenedor->'origen'->>'timestamp_captura' as timestamp_captura,
|
||||
contenedor->'archivo'->>'tipo' as tipo_archivo,
|
||||
contenedor->'archivo'->>'categoria' as categoria,
|
||||
contenedor->'estado'->>'actual' as estado_actual,
|
||||
jsonb_array_length(COALESCE(contenedor->'tags', '[]'::jsonb)) as num_tags,
|
||||
created_at
|
||||
FROM clara_log
|
||||
ORDER BY id DESC;
|
||||
|
||||
-- Comentarios para documentación
|
||||
COMMENT ON TABLE clara_log IS 'Log inmutable de contenedores recibidos de PACKET';
|
||||
COMMENT ON COLUMN clara_log.h_instancia IS 'Hash de identificación de la instancia DECK';
|
||||
COMMENT ON COLUMN clara_log.h_entrada IS 'Hash del archivo (sha256)';
|
||||
COMMENT ON COLUMN clara_log.contenedor IS 'Contenedor completo según esquema de contratos-comunes';
|
||||
COMMENT ON COLUMN clara_log.r2_paths IS 'Rutas de los archivos en Cloudflare R2';
|
||||
COMMENT ON COLUMN clara_log.created_at IS 'Timestamp de recepción (inmutable)';
|
||||
Reference in New Issue
Block a user