Skip to content

[ODS-6615] API only allows tenant1's profiles when different profiles are set up for different tenants #1221

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Jan 30, 2025

ISecurityDatabaseConnectionStringCatalog Interface Added

4ed15e5
Select commit
Loading
Failed to load commit list.
Sign in for the full log view
Merged

[ODS-6615] API only allows tenant1's profiles when different profiles are set up for different tenants #1221

ISecurityDatabaseConnectionStringCatalog Interface Added
4ed15e5
Select commit
Loading
Failed to load commit list.
GitHub Actions / MultiTenant Postman Tests succeeded Jan 29, 2025 in 1s

70 passed, 0 failed and 0 skipped

Tests passed successfully

✅ D:/a/Ed-Fi-ODS-Implementation/Ed-Fi-ODS-Implementation/Ed-Fi-ODS-Implementation/reports/Ed-Fi ODS-API Multi-Tenancy.xml

70 tests were completed in 13s with 70 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Change Queries / Get Available Change Versions (Tenant1) 1✅ 20ms
Change Queries / Get Available Change Versions (Tenant2) 1✅ 11ms
Identities / Get Identities (Tenant1) 5ms
Identities / Get Identities (Tenant2) 2ms
Metadata / Dependencies / Tenant1 2✅ 338ms
Metadata / Dependencies / Tenant1 (GraphML) 2✅ 42ms
Metadata / Dependencies / Tenant2 2✅ 31ms
Metadata / Dependencies / Tenant2 (GraphML) 2✅ 41ms
Metadata / Open API / Resources / Tenant1 OpenApi V2 2✅ 2s
Metadata / Open API / Resources / Tenant1 OpenApi v3 2✅ 2s
Metadata / Open API / Resources / Tenant2 OpenApi v2 2✅ 78ms
Metadata / Open API / Resources / Tenant2 OpenApi v3 2✅ 87ms
Metadata / Open API / Sections / Tenant1 2✅ 35ms
Metadata / Open API / Sections / Tenant2 2✅ 6ms
Profiles / Setup / Create Tenant1 School 1✅ 18ms
Profiles / Setup / Create Tenant2 School 1✅ 20ms
Profiles / Teardown / Clean up Environment Variables 3ms
Profiles / Teardown / Delete Tenant1 School 1✅ 17ms
Profiles / Teardown / Delete Tenant2 School 1✅ 5ms
Profiles / Tenant1 Requests / Get School from Tenant1 using a profile with common name 4✅ 17ms
Profiles / Tenant1 Requests / Get School from Tenant1 using a Tenant1 Profile 4✅ 41ms
Profiles / Tenant1 Requests / Get School from Tenant1 using a Tenant2 Profile 2✅ 5ms
Profiles / Tenant2 Requests / Get School from Tenant2 using a profile with common name 4✅ 23ms
Profiles / Tenant2 Requests / Get School from Tenant2 using a Tenant1 Profile 2✅ 3ms
Profiles / Tenant2 Requests / Get School from Tenant2 using a Tenant2 Profile 4✅ 16ms
Resources / Setup / Create Tenant1 School 1✅ 969ms
Resources / Setup / Create Tenant2 School 1✅ 384ms
Resources / Teardown / Clean up Environment Variables 2ms
Resources / Tenant1 Requests / Delete School 1✅ 862ms
Resources / Tenant1 Requests / Delete Tenant2 School 1✅ 117ms
Resources / Tenant1 Requests / Get Composite Enrollment 1✅ 227ms
Resources / Tenant1 Requests / Get School 1✅ 178ms
Resources / Tenant1 Requests / Get School with Tenant2 SchoolId 1✅ 48ms
Resources / Tenant1 Requests / Get Schools Deletes 2✅ 99ms
Resources / Tenant1 Requests / Get Schools Key Changes 1✅ 14ms
Resources / Tenant2 Requests / Delete School 1✅ 882ms
Resources / Tenant2 Requests / Delete Tenant1 School 1✅ 6ms
Resources / Tenant2 Requests / Get Composite Enrollment 1✅ 9ms
Resources / Tenant2 Requests / Get School 1✅ 77ms
Resources / Tenant2 Requests / Get School with Tenant1 SchoolId 1✅ 7ms
Resources / Tenant2 Requests / Get Schools Deletes 2✅ 13ms
Resources / Tenant2 Requests / Get Schools Key Changes 1✅ 3ms
Token Info / Token Info (Tenant1) 2✅ 4s
Token Info / Token Info (Tenant2) 2✅ 73ms
Version Endpoints / Get Versions (root) 2✅ 57ms

✅ Change Queries / Get Available Change Versions (Tenant1)

ChangeQueriesGetAvailableChangeVersionsTenant1
  ✅ Status code is 200

✅ Change Queries / Get Available Change Versions (Tenant2)

ChangeQueriesGetAvailableChangeVersionsTenant2
  ✅ Status code is 200

✅ Metadata / Dependencies / Tenant1

MetadataDependenciesTenant1
  ✅ Status code is 200
  ✅ Response Content-Type should be application/json

✅ Metadata / Dependencies / Tenant1 (GraphML)

MetadataDependenciesTenant1GraphMl
  ✅ Status code is 200
  ✅ Response Content-Type should be application/graphml

✅ Metadata / Dependencies / Tenant2

MetadataDependenciesTenant2
  ✅ Status code is 200
  ✅ Response Content-Type should be application/json

✅ Metadata / Dependencies / Tenant2 (GraphML)

MetadataDependenciesTenant2GraphMl
  ✅ Status code is 200
  ✅ Response Content-Type should be application/graphml

✅ Metadata / Open API / Resources / Tenant1 OpenApi V2

MetadataOpenApiResourcesTenant1OpenApiV2
  ✅ Status code is 200
  ✅ BasePath in OpenApi v2 metadata should include Tenant1

✅ Metadata / Open API / Resources / Tenant1 OpenApi v3

MetadataOpenApiResourcesTenant1OpenApiV3
  ✅ Status code is 200
  ✅ Server Url in OpenApi v3 metadata should include Tenant1

✅ Metadata / Open API / Resources / Tenant2 OpenApi v2

MetadataOpenApiResourcesTenant2OpenApiV2
  ✅ Status code is 200
  ✅ BasePath in OpenApi v2 metadata should include Tenant2

✅ Metadata / Open API / Resources / Tenant2 OpenApi v3

MetadataOpenApiResourcesTenant2OpenApiV3
  ✅ Status code is 200
  ✅ Server Url in OpenApi v3 metadata should include Tenant2

✅ Metadata / Open API / Sections / Tenant1

MetadataOpenApiSectionsTenant1
  ✅ Status code is 200
  ✅ Endpoint uris should include Tenant1

✅ Metadata / Open API / Sections / Tenant2

MetadataOpenApiSectionsTenant2
  ✅ Status code is 200
  ✅ Endpoint uris should include Tenant2

✅ Profiles / Setup / Create Tenant1 School

ProfilesSetupCreateTenant1School
  ✅ Status code is 201

✅ Profiles / Setup / Create Tenant2 School

ProfilesSetupCreateTenant2School
  ✅ Status code is 201

✅ Profiles / Teardown / Delete Tenant1 School

ProfilesTeardownDeleteTenant1School
  ✅ Status code is 204

✅ Profiles / Teardown / Delete Tenant2 School

ProfilesTeardownDeleteTenant2School
  ✅ Status code is 404

✅ Profiles / Tenant1 Requests / Get School from Tenant1 using a profile with common name

ProfilesTenant1RequestsGetSchoolFromTenant1UsingAProfileWithCommonName
  ✅ Status code is 200
  ✅ Response Content-Type header should match profile usage
  ✅ Response should not contain a property not included in the Tenant1 test profile
  ✅ The value of the property included in the Tenant1 test profile should match the expected value for Tenant1

✅ Profiles / Tenant1 Requests / Get School from Tenant1 using a Tenant1 Profile

ProfilesTenant1RequestsGetSchoolFromTenant1UsingATenant1Profile
  ✅ Status code is 200
  ✅ Response Content-Type header should match profile usage
  ✅ Response should not contain a property not included in the Tenant1 test profile
  ✅ The value of the property included in the Tenant1 test profile should match the expected value for Tenant1

✅ Profiles / Tenant1 Requests / Get School from Tenant1 using a Tenant2 Profile

ProfilesTenant1RequestsGetSchoolFromTenant1UsingATenant2Profile
  ✅ Status code is 406
  ✅ Error response should contain the expected content

✅ Profiles / Tenant2 Requests / Get School from Tenant2 using a profile with common name

ProfilesTenant2RequestsGetSchoolFromTenant2UsingAProfileWithCommonName
  ✅ Status code is 200
  ✅ Response Content-Type header should match profile usage
  ✅ Response should not contain a property not included in the Tenant2 test profile
  ✅ The value of the property included in the Tenant2 test profile should match the expected value for Tenant2

✅ Profiles / Tenant2 Requests / Get School from Tenant2 using a Tenant1 Profile

ProfilesTenant2RequestsGetSchoolFromTenant2UsingATenant1Profile
  ✅ Status code is 406
  ✅ Error response should contain the expected content

✅ Profiles / Tenant2 Requests / Get School from Tenant2 using a Tenant2 Profile

ProfilesTenant2RequestsGetSchoolFromTenant2UsingATenant2Profile
  ✅ Status code is 200
  ✅ Response Content-Type header should match profile usage
  ✅ Response should not contain a property not included in the Tenant2 test profile
  ✅ The value of the property included in the Tenant2 test profile should match the expected value for Tenant2

✅ Resources / Setup / Create Tenant1 School

ResourcesSetupCreateTenant1School
  ✅ Status code is 201

✅ Resources / Setup / Create Tenant2 School

ResourcesSetupCreateTenant2School
  ✅ Status code is 201

✅ Resources / Tenant1 Requests / Delete School

ResourcesTenant1RequestsDeleteSchool
  ✅ Status code is 204

✅ Resources / Tenant1 Requests / Delete Tenant2 School

ResourcesTenant1RequestsDeleteTenant2School
  ✅ Status code is 404

✅ Resources / Tenant1 Requests / Get Composite Enrollment

ResourcesTenant1RequestsGetCompositeEnrollment
  ✅ Status code is 200

✅ Resources / Tenant1 Requests / Get School

ResourcesTenant1RequestsGetSchool
  ✅ Status code is 200

✅ Resources / Tenant1 Requests / Get School with Tenant2 SchoolId

ResourcesTenant1RequestsGetSchoolWithTenant2SchoolId
  ✅ Status code is 404

✅ Resources / Tenant1 Requests / Get Schools Deletes

ResourcesTenant1RequestsGetSchoolsDeletes
  ✅ Status code is 200
  ✅ Response should include deleted Id

✅ Resources / Tenant1 Requests / Get Schools Key Changes

ResourcesTenant1RequestsGetSchoolsKeyChanges
  ✅ Status code is 200

✅ Resources / Tenant2 Requests / Delete School

ResourcesTenant2RequestsDeleteSchool
  ✅ Status code is 204

✅ Resources / Tenant2 Requests / Delete Tenant1 School

ResourcesTenant2RequestsDeleteTenant1School
  ✅ Status code is 404

✅ Resources / Tenant2 Requests / Get Composite Enrollment

ResourcesTenant2RequestsGetCompositeEnrollment
  ✅ Status code is 200

✅ Resources / Tenant2 Requests / Get School

ResourcesTenant2RequestsGetSchool
  ✅ Status code is 200

✅ Resources / Tenant2 Requests / Get School with Tenant1 SchoolId

ResourcesTenant2RequestsGetSchoolWithTenant1SchoolId
  ✅ Status code is 404

✅ Resources / Tenant2 Requests / Get Schools Deletes

ResourcesTenant2RequestsGetSchoolsDeletes
  ✅ Status code is 200
  ✅ Response should include deleted Id

✅ Resources / Tenant2 Requests / Get Schools Key Changes

ResourcesTenant2RequestsGetSchoolsKeyChanges
  ✅ Status code is 200

✅ Token Info / Token Info (Tenant1)

TokenInfoTokenInfoTenant1
  ✅ Status code is 200
  ✅ Client Id should be Tenant1 ApiKey

✅ Token Info / Token Info (Tenant2)

TokenInfoTokenInfoTenant2
  ✅ Status code is 200
  ✅ Client Id should be Tenant2 ApiKey

✅ Version Endpoints / Get Versions (root)

VersionEndpointsGetVersionsRoot
  ✅ Status code is 200
  ✅ Version urls should include the {tenantIdentifier} placeholder