fix(api): standardize JSON:API resource types for Lighthouse endpoints (#9085)

Co-authored-by: Chandrapal Badshah <12944530+Chan9390@users.noreply.github.com>
This commit is contained in:
Chandrapal Badshah
2025-10-30 18:06:51 +05:30
committed by GitHub
parent 3b95aad6ce
commit f9afb50ed9
4 changed files with 18 additions and 15 deletions
+4 -1
View File
@@ -2104,7 +2104,7 @@ class LighthouseTenantConfiguration(RowLevelSecurityProtectedModel):
]
class JSONAPIMeta:
resource_name = "lighthouse-config"
resource_name = "lighthouse-configurations"
class LighthouseProviderModels(RowLevelSecurityProtectedModel):
@@ -2153,3 +2153,6 @@ class LighthouseProviderModels(RowLevelSecurityProtectedModel):
name="lh_prov_models_cfg_idx",
),
]
class JSONAPIMeta:
resource_name = "lighthouse-models"
+12 -12
View File
@@ -8923,7 +8923,7 @@ class TestLighthouseTenantConfigViewSet:
"""Test creating a tenant config successfully via PATCH (upsert)"""
payload = {
"data": {
"type": "lighthouse-config",
"type": "lighthouse-configurations",
"attributes": {
"business_context": "Test business context for security analysis",
"default_provider": "",
@@ -8932,7 +8932,7 @@ class TestLighthouseTenantConfigViewSet:
}
}
response = authenticated_client.patch(
reverse("lighthouse-config"),
reverse("lighthouse-configurations"),
data=payload,
content_type=API_JSON_CONTENT_TYPE,
)
@@ -8949,7 +8949,7 @@ class TestLighthouseTenantConfigViewSet:
"""Test that PATCH creates config if not exists and updates if exists (upsert)"""
payload = {
"data": {
"type": "lighthouse-config",
"type": "lighthouse-configurations",
"attributes": {
"business_context": "First config",
},
@@ -8958,7 +8958,7 @@ class TestLighthouseTenantConfigViewSet:
# First PATCH creates the config
response = authenticated_client.patch(
reverse("lighthouse-config"),
reverse("lighthouse-configurations"),
data=payload,
content_type=API_JSON_CONTENT_TYPE,
)
@@ -8969,7 +8969,7 @@ class TestLighthouseTenantConfigViewSet:
# Second PATCH updates the same config (not creating a duplicate)
payload["data"]["attributes"]["business_context"] = "Updated config"
response = authenticated_client.patch(
reverse("lighthouse-config"),
reverse("lighthouse-configurations"),
data=payload,
content_type=API_JSON_CONTENT_TYPE,
)
@@ -9025,7 +9025,7 @@ class TestLighthouseTenantConfigViewSet:
)
# Retrieve and verify the configuration
response = authenticated_client.get(reverse("lighthouse-config"))
response = authenticated_client.get(reverse("lighthouse-configurations"))
assert response.status_code == status.HTTP_200_OK
data = response.json()["data"]
assert data["id"] == str(config.id)
@@ -9035,7 +9035,7 @@ class TestLighthouseTenantConfigViewSet:
def test_lighthouse_tenant_config_retrieve_not_found(self, authenticated_client):
"""Test GET when config doesn't exist returns 404"""
response = authenticated_client.get(reverse("lighthouse-config"))
response = authenticated_client.get(reverse("lighthouse-configurations"))
assert response.status_code == status.HTTP_404_NOT_FOUND
assert "not found" in response.json()["errors"][0]["detail"].lower()
@@ -9056,14 +9056,14 @@ class TestLighthouseTenantConfigViewSet:
# Update it
payload = {
"data": {
"type": "lighthouse-config",
"type": "lighthouse-configurations",
"attributes": {
"business_context": "Updated context for cloud security",
},
}
}
response = authenticated_client.patch(
reverse("lighthouse-config"),
reverse("lighthouse-configurations"),
data=payload,
content_type=API_JSON_CONTENT_TYPE,
)
@@ -9088,14 +9088,14 @@ class TestLighthouseTenantConfigViewSet:
# Try to set invalid provider
payload = {
"data": {
"type": "lighthouse-config",
"type": "lighthouse-configurations",
"attributes": {
"default_provider": "nonexistent-provider",
},
}
}
response = authenticated_client.patch(
reverse("lighthouse-config"),
reverse("lighthouse-configurations"),
data=payload,
content_type=API_JSON_CONTENT_TYPE,
)
@@ -9116,7 +9116,7 @@ class TestLighthouseTenantConfigViewSet:
# Send invalid JSON
response = authenticated_client.patch(
reverse("lighthouse-config"),
reverse("lighthouse-configurations"),
data="invalid json",
content_type=API_JSON_CONTENT_TYPE,
)
+1 -1
View File
@@ -3197,7 +3197,7 @@ class LighthouseTenantConfigSerializer(RLSSerializer):
def get_url(self, obj):
request = self.context.get("request")
return reverse("lighthouse-config", request=request)
return reverse("lighthouse-configurations", request=request)
class Meta:
model = LighthouseTenantConfiguration
+1 -1
View File
@@ -156,7 +156,7 @@ urlpatterns = [
LighthouseTenantConfigViewSet.as_view(
{"get": "list", "patch": "partial_update"}
),
name="lighthouse-config",
name="lighthouse-configurations",
),
# API endpoint to start SAML SSO flow
path(