Skip to content

Releases: Ed-Fi-Alliance-OSS/ODS-Admin-API

v2.3.3-alpha.0.194

v2.3.3-alpha.0.194 Pre-release
Pre-release

Choose a tag to compare

@EdFiBuildAgent EdFiBuildAgent released this 08 Jul 14:33
3d102e4
Pre-Release-v2.3.3-alpha.0.194

[ADMINAPI-1448] Increase unit tests coverage in all unit tests V2/V3 …

v2.3.3-alpha.0.193

v2.3.3-alpha.0.193 Pre-release
Pre-release

Choose a tag to compare

@EdFiBuildAgent EdFiBuildAgent released this 01 Jul 22:12
56b3d98
Pre-Release-v2.3.3-alpha.0.193

[ADMINAPI-1436] - Instance Management - Docker database template setu…

v2.3.3-alpha.0.192

v2.3.3-alpha.0.192 Pre-release
Pre-release

Choose a tag to compare

@EdFiBuildAgent EdFiBuildAgent released this 30 Jun 20:27
ac3c8f4
Pre-Release-v2.3.3-alpha.0.192

[ADMINAPI-1447] - Include rows in adminapi.DbInstances on the sync en…

v2.3.3-alpha.0.191

v2.3.3-alpha.0.191 Pre-release
Pre-release

Choose a tag to compare

@EdFiBuildAgent EdFiBuildAgent released this 29 Jun 15:23
8564784
Pre-Release-v2.3.3-alpha.0.191

[ADMINAPI-1446] Improve the "type" property to have the urn for probl…

v2.3.3-alpha.0.190

v2.3.3-alpha.0.190 Pre-release
Pre-release

Choose a tag to compare

@EdFiBuildAgent EdFiBuildAgent released this 29 Jun 15:09
fab8c46
[ADMINAPI-1370] Vendor tests enhacements (#389)

* [ADMINAPI-1370] S1: Expand EditVendorCommand tests (v2 + v3)

Add happy-path update, system-reserved rejection, no-users-creates-new-user,
and namespace-prefix replacement scenarios to both unit test projects.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* [ADMINAPI-1370] S2: Expand AddVendorCommand tests (v2 + v3)

Add null-namespace, multi-comma-separated-namespace, and field-trimming
scenarios to both unit test projects.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* [ADMINAPI-1370] S5: Add VendorMapperTests (v2 + v3)

New test files covering ToModel (full mapping, no-users null-safe path)
and ToModelList for both unit test projects.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* [ADMINAPI-1370] S4: Expand GetVendorsQuery filter tests (v2 + v3)

Add id, namespace-prefix (exact-match), contact-name, contact-email,
and empty-result filter scenarios to both unit test projects.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* [ADMINAPI-1370] S3: Expand DeleteVendorCommand tests (v2 + v3)

Add system-reserved-vendor rejection and cascade-delete-with-applications
scenarios to both unit test projects. Application initializers include
OperationalContextUri = string.Empty to satisfy the EF in-memory nullability
constraint on that required field.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* [ADMINAPI-1370] Add vendor coverage boost design spec

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* [ADMINAPI-1370] Add vendor coverage boost implementation plan

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* [ADMINAPI-1370] Add TestEndpointRouteBuilder helper to v2 and v3 test projects

* [ADMINAPI-1370] Add VendorFeatureEndpointTests to cover MapEndpoints in v2 and v3

* [ADMINAPI-1370] Add null-NamespacePrefixes branch test to EditVendorCommandTests (v2 + v3)

* [ADMINAPI-1370] Add null-vendor branch test to VendorExtensionsTests (v2 + v3)

* [ADMINAPI-1370] Add null-NamespacePrefixes validator branch test to AddVendorTests (v2 + v3)

* [ADMINAPI-1370] Add SqlServer engine branch test to GetVendorsQueryTests (v2 + v3)

Added Execute_WithSqlServerDatabaseEngine_ReturnsVendors test to both v2 and v3 test files.
Test validates SqlServer engine path in GetVendorsQuery constructor.
Fallback to parameterless Execute() due to EF Core InMemory Collate() limitation.

* [ADMINAPI-1370] Add ApiClient cleanup branch test to DeleteVendorCommandTests (v2 + v3)

* [ADMINAPI-1370] Fix AddVendorCommand branch gap: null-field test (v2 + v3)

Adds Execute_WithNullCompanyContactNameAndEmail test to cover the null
path of Company?.Trim(), ContactName?.Trim(), and ContactEmailAddress?.Trim()
null-conditional branches. Brings AddVendorCommand branch coverage from
62.5% to 100% in both assemblies.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* [ADMINAPI-1370] Implement vendor coverage boost plan: add unit tests for vendor features, enhance test infrastructure, and ensure ≥80% coverage across relevant classes.

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

v2.3.3-alpha.0.189

v2.3.3-alpha.0.189 Pre-release
Pre-release

Choose a tag to compare

@EdFiBuildAgent EdFiBuildAgent released this 18 Jun 16:54
20bb335
[ADMINAPI-1412] Update all GitHub Actions to Latest Available (#385)

* Update GitHub Actions versions

* feat: Upgrade to the latest version of the actions

* feat: Enhance workflows with version validation and improved tagging logic

* fix: Update action references to use latest versions for secure artifact download and SLSA generator

---------

Co-authored-by: Stephen A. Fuqua <stephen@safnet.com>

v2.3.3-alpha.0.188

v2.3.3-alpha.0.188 Pre-release
Pre-release

Choose a tag to compare

@EdFiBuildAgent EdFiBuildAgent released this 11 Jun 21:23
13f4843
[ADMINAPI-1410] - Treat warnings as errors. (#382)

* v3 specification - Adds PUT-request-aligned validation - Cover more scenarios.

* docs: add design spec for TreatWarningsAsErrors rollout

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore: enable TreatWarningsAsErrors in all projects and fix resulting warnings

- Added TreatWarningsAsErrors to all 8 projects missing the property
- Fixed NU1510: removed unnecessary explicit PackageReferences for
  System.Text.Json (4 projects) and System.Formats.Asn1 (2 projects)
- Fixed NU1904: pinned System.Drawing.Common to 8.0.0 to address
  critical vulnerability (GHSA-rxg9-xrhp-64gj)
- Fixed NUnit1033: replaced TestContext.WriteLine with TestContext.Out.WriteLine
- Fixed CS0618: replaced System.Data.SqlClient with Microsoft.Data.SqlClient
- Fixed CS8632: added #nullable enable to 15 files that use nullable
  annotations without nullable context
- Fixed CS8600/CS8620: changed string to string? for decryptedConnectionString
  variables used as out parameters with nullable-annotated APIs
- Fixed CS8602: added null-forgiving operator after okResult.ShouldNotBeNull()
  and after Ok<T>.Value (which returns T?) in GetJobStatusTests
- Fixed CS8625: used null! for _usersContext field initialization/teardown
- Fixed CS8625/CS8602/CS8620 in EducationOrganizationServiceTests:
  Dictionary<string,string?>, null! teardown, (v.ToString() ?? ...).Contains,
  and Func<It.IsAnyType, Exception?, string>

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Removing files we don't need here

* Removing files we don't need here

* fix: update openssl from 3.5.6-r0 to 3.5.7-r0 in all Dockerfiles

Alpine updated openssl to 3.5.7-r0; other packages (libcrypto3, libssl3)
now require this version, causing a dependency conflict with the pinned
3.5.6-r0. Updated all four Dockerfiles.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

v2.3.3-alpha.0.187

v2.3.3-alpha.0.187 Pre-release
Pre-release

Choose a tag to compare

@EdFiBuildAgent EdFiBuildAgent released this 09 Jun 15:37
e0836cd
Pre-Release-v2.3.3-alpha.0.187

[ADMINAPI-1383] Update Admin API error payload shape to support Probl…

v2.3.3-alpha.0.186

v2.3.3-alpha.0.186 Pre-release
Pre-release

Choose a tag to compare

@EdFiBuildAgent EdFiBuildAgent released this 27 May 15:53
0d4a038
[ADMINAPI-1381] - v3 specification - ClaimSet name validation (#369)

* v3 specification - Adds PUT-request-aligned validation - Cover more scenarios.

* docs: add claimset no-whitespace validation design spec

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* feat: add no-whitespace validation to claimset name fields (V3)

- Add ClaimSetNameNoWhitespaceMessage constant to FeatureConstants
- Add Must rule to AddClaimSet, EditClaimSet, ImportClaimSet, CopyClaimSet validators
- Add Must rule to AddApplication, EditApplication validators for ClaimSetName
- Add unit tests for all 6 validators (12 tests, all passing)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* test: add DB integration tests for no-whitespace claimset name validation (V3)

- AddClaimSetValidatorTests: verifies whitespace rejected/accepted using real DB query
- EditClaimSetValidatorTests: saves test ClaimSet entity, checks whitespace rule
- CopyClaimSetValidatorTests: saves test ClaimSet entity, checks whitespace rule
- ImportClaimSetValidatorTests: uses all 4 real queries to instantiate validator

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* test: add Bruno E2E tests for no-whitespace validation (V3)

- POST /claimSets: Invalid Name With Whitespace (seq 11.5)
- PUT /claimSets/{id}: Invalid Name With Whitespace (seq 49.5)
- POST /claimSets/copy: Invalid Name With Whitespace (seq 41.5)
- POST /claimSets/import: Invalid Name With Whitespace (seq 8.5)
- POST /applications: Invalid ClaimSetName With Whitespace (seq 3.5)
- PUT /applications/{id}: Invalid ClaimSetName With Whitespace (seq 17.5)

All tests expect HTTP 400 with errors containing 'white space'.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* refactor: use char.IsWhiteSpace to reject all whitespace in claimset names (V3)

Per code review: change Contains(' ') to !name.Any(char.IsWhiteSpace) so that
tabs, newlines, and non-breaking spaces are also rejected, matching the intent
of the 'must not contain white spaces' error message.

Also add parameterized unit test cases for tab, newline, leading/trailing space
edge cases (293 unit tests total, all passing).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: keep security context alive during ImportClaimSet validator DB tests

The CreateValidator() helper method was disposing the DbContext before
validation ran, causing ObjectDisposedException. Inline context creation
into each test method so the context stays alive for the entire validate call.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: update E2E tests to use claimset names without whitespace

- Rename ClaimSet test names: 'Test ClaimSet' -> 'TestClaimSet-', 'Updated Test ClaimSet' -> 'UpdatedTestClaimSet', 'Copied ClaimSet from' -> 'CopiedClaimSet-from', 'Other Test ClaimSet' -> 'OtherTestClaimSet-', 'Test ClaimSet import' -> 'TestClaimSet-import'
- Add dynamic claimset creation in pre-request scripts for Application, ApiClient, Vendors, DataStores, and ClaimSet-with-Applications tests that create applications using 'Ed-Fi Sandbox' or 'Ed-Fi ODS Admin App'
- Replace hardcoded 'Ed-Fi Sandbox' / 'Ed-Fi ODS Admin App' with {{ApplicationClaimSetName}} / {{UpdatedApplicationClaimSetName}} variables
- Update expect() assertions to use the dynamic variables

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: update remaining E2E test claimset names with spaces

- PUT - ClaimSets - System Reserved: 'Update System Reserved ClaimSet' -> 'UpdateSystemReservedClaimSet'
- Application Sorting folder.bru: 'ClaimSet Pre' -> 'ClaimSetPre-' (template literal)
- POST Import Invalid Resource Duplication: 'Wrong Relationship' -> 'WrongRelationship-'
- POST Import Invalid Wrong Parent Child Relationship: same pattern
- POST Import Wrong resource name: 'Wrong Resouce name' -> 'WrongResouceName-'
- POST ClaimSets-Copy Invalid ClaimSet Id: 'Claim set does not exists' -> 'ClaimSetDoesNotExist'

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* docs: add design doc for claimset name no-whitespace validation

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* docs: remove oversized spec file replaced by design doc

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: correct 'Resouce' typo to 'Resource' in E2E test claimset name

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

v2.3.3-alpha.0.185

v2.3.3-alpha.0.185 Pre-release
Pre-release

Choose a tag to compare

@EdFiBuildAgent EdFiBuildAgent released this 26 May 13:26
2a0ec66
Pre-Release-v2.3.3-alpha.0.185

[ADMINAPI-1424] Fixes for refresh endpoints (#368)