tem_openssl_original_txt

Column Type
uniform_resource_id TEXT
tenant_id TEXT
tenant_name TEXT
ur_ingest_session_id TEXT
cert_index
metadata
certificate

SQL DDL

CREATE VIEW tem_openssl_original_txt AS
WITH RECURSIVE cert_blocks AS (
    -- Anchor: start from the beginning of content with tenant info
    SELECT
        ur.uniform_resource_id,
        t.tenant_id,
        t.tenant_name,
        ts.ur_ingest_session_id,
        ur.content AS remaining_text,
        NULL AS metadata,
        NULL AS certificate,
        1 AS cert_index
    FROM uniform_resource ur
    INNER JOIN tem_tenant t ON t.device_id = ur.device_id
    INNER JOIN tem_session ts ON ur.device_id = ts.device_id
    WHERE ur.uri LIKE '%openssl%'  -- filter by uri
    
    UNION ALL

    -- Recursive step: extract the next certificate block
    SELECT
        uniform_resource_id,
        tenant_id,
        tenant_name,
        ur_ingest_session_id,
        substr(remaining_text, instr(remaining_text, '-----END CERTIFICATE-----') + length('-----END CERTIFICATE-----')) AS remaining_text,
        trim(substr(remaining_text, 1, instr(remaining_text, '-----BEGIN CERTIFICATE-----') - 1)) AS metadata,
        substr(
            remaining_text,
            instr(remaining_text, '-----BEGIN CERTIFICATE-----'),
            instr(remaining_text, '-----END CERTIFICATE-----') - instr(remaining_text, '-----BEGIN CERTIFICATE-----') + length('-----END CERTIFICATE-----')
        ) AS certificate,
        cert_index + 1
    FROM cert_blocks
    WHERE remaining_text LIKE '%-----BEGIN CERTIFICATE-----%'
)
SELECT
    uniform_resource_id,
    tenant_id,
    tenant_name,
    ur_ingest_session_id,
    cert_index,
    metadata,
    certificate
FROM cert_blocks
WHERE certificate IS NOT NULL
ORDER BY uniform_resource_id, cert_index