Skip to content

fix: resolve self-test failures by ensuring public schema and UUID ex… - #118

Draft
Oluwajuwon-O wants to merge 3 commits into
datakind:mainfrom
Oluwajuwon-O:feature/self_test_and_uuid_hardening
Draft

fix: resolve self-test failures by ensuring public schema and UUID ex…#118
Oluwajuwon-O wants to merge 3 commits into
datakind:mainfrom
Oluwajuwon-O:feature/self_test_and_uuid_hardening

Conversation

@Oluwajuwon-O

@Oluwajuwon-O Oluwajuwon-O commented Jul 31, 2026

Copy link
Copy Markdown
Collaborator

Description

This PR addresses the database-bootstrap and self-test-isolation issues described in the technical documentation:

  1. UUID extension initialization failure
    DOT can raise uuid_ns_oid() does not exist when uuid-ossp is unavailable in public or the connection search path excludes public.
  2. Self-test project hardcoding
    The test framework was coupled to ScanProject1, preventing isolated testing against alternate project configurations.
  3. Stale dbt profile configuration
    Self-tests could reuse a previously generated dbt profile and target a runtime schema rather than the intended self-test schema.
  4. Residual self-test schemas
    Test teardown did not consistently remove all schemas created across the DOT and project database connections.

Resolution

  • Ensure the public schema and uuid-ossp extension are available.
  • Qualify UUID trigger functions with public.
  • Allow self-test setup/cleanup to receive a project ID.
  • Regenerate dbt profiles for the self-test environment.
  • Clean all relevant self-test schemas while preserving public.

In the Technical Documentation, it is addressed in Sections 10 & 11

Asana Task

Deployment Readiness*

Testing

Describe or check:

  • Created or updated unit, feature, and/or integration tests
  • Typical manual testing in the local env browser, dev pipeline, etc.

Deployment Notes

Describe or check:

  • No special deployment steps required

Rollback Plan

Describe or check:

  • Standard revert is sufficient (git revert)

Reviewer Guidance / Questions*

Screenshots / Testing Evidence*

SOC 2 Change Management Checklist

  • None of the below are true in this code
  • New roles/permissions are introduced without review and approval by the product manager
  • Hardcoded credentials, secrets, or API keys are present in this code
  • Secrets are being managed outside of the approved secrets management process (e.g., GitHub Secrets, environment variables)
  • PII or sensitive data handling is introduced or changed without being reviewed against our data classification policy
  • Sensitive data is written to logs
  • Input validation and sanitization is missing
  • An unnecessary attack surface has been introduced (e.g., unused endpoints, open ports, debug modes left enabled)
  • Common vulnerabilities have been introduced in the code (inc. any dependencies added or updated)
  • No review for common vulnerabilities has been conducted
  • Not tested in a non-production environment
  • Breaking changes to existing APIs or integrations with downstream consumers being notified
  • Performance impact has not been considered or acceptable
  • Appropriate audit logging is missing for any security-relevant actions introduced by this change
  • Log entries contain sensitive or PII data
  • All existing tests do not pass locally (./vendor/bin/pest)

Provide justification if you are submitting a PR with any boxes checked other than the first.


Reminder for Reviewers: By approving this PR you are confirming that you have reviewed the code for correctness, security, and compliance with our engineering and SOC 2 standards. Do not approve PRs where SOC 2 checklist items are checked without documented justification.

*Optional

Oluwajuwon-O and others added 3 commits July 31, 2026 11:51
Use a patch context manager instead of a decorator so callers no longer
trigger no-value-for-parameter errors, and tidy related lint issues in
the self-test schema helpers.

Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant