Merge develop into staging for edvise-api release#231
Merged
Conversation
Stop passing edvise converter_func_cohort when pdp_cohort_converter_func is omitted so PDP cohort rows are validated as read. - Callers may still pass an explicit cohort converter. - Update PDP read-path test to expect converter_func=None. - Refresh docstrings (pipeline vs API, Args/Returns/Raises) in validation and validation_pdp_edvise. Made-with: Cursor
…y schemas UNKNOWN - Require exactly one of PDP, Edvise, or Legacy on POST /institutions - Remove custom schema resolution and Databricks extension generation for uploads - Fix PATCH /institutions to persist allowed_schemas to inst.schemas column - LEGACY_SCHEMA_GROUP stores UNKNOWN only; drop validation_extension module - Update tests and default fixtures for typeless/custom removal Made-with: Cursor
- POST/PATCH: require exactly one school type (pdp, edvise, or legacy) - PATCH: recompute schemas only when the type triple changes; merge optional allowed_schemas on change - PATCH: honor is_edvise/is_legacy for auto-assigned ids (POST parity) - Docs/tests: validation namespaces; disambiguate custom naming in code and tests Made-with: Cursor
Restore original docstrings and test names where "custom" referred to\nconverters, schema config, or JSON keys—not custom institutions.\n\nKeep gcsutil validate_file institution_id line aligned with pdp/edvise/legacy\nonly (no institution-UUID-for-custom upload path). Made-with: Cursor
…ol type When (name, state) matches an existing InstTable row, validate stored\npdp_id/edvise_id/legacy_id the same as new creates: at most one non-null\nand exactly one required. Return 400 with guidance instead of 200 for\ntypeless or invalid rows. Add regression tests. Made-with: Cursor
…s-only - Reject is_pdp without pdp_id on POST\n- Reject duplicate (name, state) when stored row has conflicting ids\n- Reject PATCH is_edvise on PDP row without clearing pdp_id\n- Reject PATCH with both is_edvise and is_legacy\n- allowed_schemas-only PATCH replaces schemas when type unchanged Made-with: Cursor
…idation fix: default cohort converter to none
- Add shared mutual-exclusion detail constant for POST/PATCH paths - Extract duplicate-post row validation and PATCH merge/validate/persist helpers - Keep update_inst within single-responsibility helpers; reuse row response mapper Made-with: Cursor
- Remove unused HTTPException import from databricks.py (F401) - Cast ORM row in _require_single_institution_row_by_uuid for InstTable (no-any-return) Made-with: Cursor
Made-with: Cursor
feat: remove custom institutions, enforce PDP / Edvise / Legacy in API and uploads
feat: Optional local institution seed from `config/local_inst_data.json`
chore: bumping pyproject and uv.lock for edvise 0.2.1
kaylawilding
approved these changes
May 7, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Feature branches since last merge:
config/local_inst_data.json#229