← Back to CSV Documentation
COS-CSV-IQ-001Approvedv1.0

Installation Qualification (IQ)

Verification that infrastructure is deployed correctly

18/18
Checks passed
100%
Pass rate
April 2026
Execution date
IDCategoryCheckExpectedActualResult
IQ-001Cloud PlatformGCP project clinicalos-platform exists in region europe-west6 (Zurich)Project active, billing enabled, region europe-west6Project ID: clinicalos-platform, region: europe-west6, status: ACTIVEPASS
IQ-002Cloud PlatformCloud Run service clinicalos-backend deployed and serving trafficService URL responds with HTTP 200 on /healthhttps://clinicalos-backend-786530633222.europe-west6.run.app/health returns 200PASS
IQ-003Cloud PlatformCloud Run service clinicalos-frontend deployed and serving trafficService URL responds with HTTP 200https://app.clinicalos.ch returns 200PASS
IQ-004DatabaseCloud SQL instance clinicalos-db running PostgreSQL 16PostgreSQL 16.x, HA configuration, region europe-west6PostgreSQL 16.13, IP 34.65.122.178, europe-west6, HA enabledPASS
IQ-005DatabaseDatabase schema at migration version 014Alembic version = 014SELECT version_num FROM alembic_version returns '014'PASS
IQ-006Database43 tables exist in public schema43 tables matching model definitionsSELECT count(*) FROM pg_tables WHERE schemaname='public' returns 43PASS
IQ-007Databasepgcrypto extension installedpgcrypto listed in pg_extensionSELECT extname FROM pg_extension: ['plpgsql', 'pgcrypto']PASS
IQ-008DatabaseAudit immutability trigger active on audit_logaudit_immutability_guard trigger exists on audit_logTrigger found: BEFORE UPDATE OR DELETE, EXECUTE FUNCTION prevent_audit_mutation()PASS
IQ-009DatabaseHash chain columns exist on audit_logrecord_hash (VARCHAR 64) and prev_hash (VARCHAR 64) columns existBoth columns confirmed via information_schema.columnsPASS
IQ-010DatabaseEncrypted columns exist on investigators and sites tablesbio_summary_encrypted and specialties_encrypted columns exist6 encrypted columns found: investigators(1), sites(1), edc_connectors(4)PASS
IQ-011SecuritySSL/TLS connection to databaseSHOW ssl returns 'on'SSL active, PostgreSQL 16.13PASS
IQ-012SecurityGCP Secret Manager contains required secretsclinicalos-db-url, jwt-secret-key secrets existSecrets accessible via gcloud secrets listPASS
IQ-013NetworkingHTTPS enforced on all endpointsHTTP requests redirected to HTTPSCloud Run + Cloudflare enforce TLS 1.3PASS
IQ-014NetworkingCloudflare CDN configured for frontendDNS proxied through Cloudflareclinicalos.ch proxied, TLS 1.3 enforcedPASS
IQ-015DataProduction database contains site datasites table has records6,834 sites loaded from ClinicalTrials.govPASS
IQ-016DataProduction database contains investigator datainvestigators table has records427 investigators enriched from PubMedPASS
IQ-017CI/CDGitHub Actions workflow configureddeploy.yml exists and runs on push to main.github/workflows/deploy.yml presentPASS
IQ-018CI/CDCloud Build connected to source repositorygcloud builds submit succeedsBuild ID ae124b6f completed successfully, image pushed to Artifact RegistryPASS

Conclusion: All 18 installation checks passed. Infrastructure is correctly deployed and configured.

Environment: Production (europe-west6, Zurich)