Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions docs/content/releases/os_upgrading/2.57.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
title: 'Upgrading to DefectDojo Version 2.57.x'
toc_hide: true
weight: -20260406
description: Deprecation of Credential Manager and Stub Findings
---

## Deprecation: Credential Manager

The Credential Manager feature is being deprecated and will be removed in DefectDojo 2.59.0 on June 1st, 2026. The following API endpoints are affected:

- `/api/v2/credentials/`
- `/api/v2/credential_mappings/`

### Required Actions

Support for the Credential Manager will be fully removed in DefectDojo 2.59.0 (scheduled for June 1st, 2026). After this date, any requests to these endpoints will return a 404 Not Found error and the Credential Manager UI will no longer be available.

### Timeline

- **DefectDojo 2.57.x onwards**: Credential Manager is deprecated with deprecation headers on API endpoints
- **DefectDojo 2.59.0 (June 1st, 2026)**: Credential Manager will be removed entirely

## Deprecation: Stub Findings

The Stub Findings feature is being deprecated and will be removed in DefectDojo 2.59.0 on June 1st, 2026. The following API endpoint is affected:

- `/api/v2/stub_findings/`

### Required Actions

Support for Stub Findings will be fully removed in DefectDojo 2.59.0 (scheduled for June 1st, 2026). After this date, any requests to this endpoint will return a 404 Not Found error and the Stub Findings UI will no longer be available.

### Timeline

- **DefectDojo 2.57.x onwards**: Stub Findings is deprecated with deprecation headers on API endpoints
- **DefectDojo 2.59.0 (June 1st, 2026)**: Stub Findings will be removed entirely

For more information, check the [Release Notes](https://github.com/DefectDojo/django-DefectDojo/releases/tag/2.57.0).
23 changes: 22 additions & 1 deletion docs/content/releases/os_upgrading/2.59.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: 'Upgrading to DefectDojo Version 2.59.x'
toc_hide: true
weight: -20260602
description: Removal of Questionnaire API Endpoints
description: Removal of Questionnaire API Endpoints, Credential Manager, and Stub Findings
---

## Removal: Questionnaire API Endpoints
Expand All @@ -19,4 +19,25 @@ As announced in DefectDojo 2.56.0, the following Questionnaire API endpoints hav

Any requests to these endpoints will now return a 404 Not Found error.

## Removal: Credential Manager

As announced in DefectDojo 2.57.0, the Credential Manager feature has been removed. The following API endpoints are no longer available:

- `/api/v2/credentials/`
- `/api/v2/credential_mappings/`

### Required Actions

Any requests to these endpoints will now return a 404 Not Found error. The Credential Manager UI is no longer available.

## Removal: Stub Findings

As announced in DefectDojo 2.57.0, the Stub Findings feature has been removed. The following API endpoint is no longer available:

- `/api/v2/stub_findings/`

### Required Actions

Any requests to this endpoint will now return a 404 Not Found error. The Stub Findings UI is no longer available.

For more information, check the [Release Notes](https://github.com/DefectDojo/django-DefectDojo/releases/tag/2.59.0).
135 changes: 135 additions & 0 deletions dojo/api_v2/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -880,7 +880,10 @@ def get_queryset(self):
@extend_schema_view(**schema_with_prefetch())
class CredentialsViewSet(
PrefetchDojoModelViewSet,
DeprecationNoticeMixin,
):
deprecated = True
end_of_life_date = datetime(2026, 6, 1)
serializer_class = serializers.CredentialSerializer
queryset = Cred_User.objects.all()
filter_backends = (DjangoFilterBackend,)
Expand All @@ -889,13 +892,58 @@ class CredentialsViewSet(
def get_queryset(self):
return Cred_User.objects.all().order_by("id")

@extend_schema(
deprecated=True,
description="This endpoint is deprecated and will be removed on 2026-06-01.",
)
def list(self, request, *args, **kwargs):
return super().list(request, *args, **kwargs)

@extend_schema(
deprecated=True,
description="This endpoint is deprecated and will be removed on 2026-06-01.",
)
def retrieve(self, request, *args, **kwargs):
return super().retrieve(request, *args, **kwargs)

@extend_schema(
deprecated=True,
description="This endpoint is deprecated and will be removed on 2026-06-01.",
)
def create(self, request, *args, **kwargs):
return super().create(request, *args, **kwargs)

@extend_schema(
deprecated=True,
description="This endpoint is deprecated and will be removed on 2026-06-01.",
)
def update(self, request, *args, **kwargs):
return super().update(request, *args, **kwargs)

@extend_schema(
deprecated=True,
description="This endpoint is deprecated and will be removed on 2026-06-01.",
)
def partial_update(self, request, *args, **kwargs):
return super().partial_update(request, *args, **kwargs)

@extend_schema(
deprecated=True,
description="This endpoint is deprecated and will be removed on 2026-06-01.",
)
def destroy(self, request, *args, **kwargs):
return super().destroy(request, *args, **kwargs)


# Authorization: configuration
# @extend_schema_view(**schema_with_prefetch())
# Nested models with prefetch make the response schema too long for Swagger UI
class CredentialsMappingViewSet(
PrefetchDojoModelViewSet,
DeprecationNoticeMixin,
):
deprecated = True
end_of_life_date = datetime(2026, 6, 1)
serializer_class = serializers.CredentialMappingSerializer
queryset = Cred_Mapping.objects.none()
filter_backends = (DjangoFilterBackend,)
Expand All @@ -909,6 +957,48 @@ class CredentialsMappingViewSet(
def get_queryset(self):
return get_authorized_cred_mappings(Permissions.Credential_View)

@extend_schema(
deprecated=True,
description="This endpoint is deprecated and will be removed on 2026-06-01.",
)
def list(self, request, *args, **kwargs):
return super().list(request, *args, **kwargs)

@extend_schema(
deprecated=True,
description="This endpoint is deprecated and will be removed on 2026-06-01.",
)
def retrieve(self, request, *args, **kwargs):
return super().retrieve(request, *args, **kwargs)

@extend_schema(
deprecated=True,
description="This endpoint is deprecated and will be removed on 2026-06-01.",
)
def create(self, request, *args, **kwargs):
return super().create(request, *args, **kwargs)

@extend_schema(
deprecated=True,
description="This endpoint is deprecated and will be removed on 2026-06-01.",
)
def update(self, request, *args, **kwargs):
return super().update(request, *args, **kwargs)

@extend_schema(
deprecated=True,
description="This endpoint is deprecated and will be removed on 2026-06-01.",
)
def partial_update(self, request, *args, **kwargs):
return super().partial_update(request, *args, **kwargs)

@extend_schema(
deprecated=True,
description="This endpoint is deprecated and will be removed on 2026-06-01.",
)
def destroy(self, request, *args, **kwargs):
return super().destroy(request, *args, **kwargs)


# Authorization: configuration
class FindingTemplatesViewSet(
Expand Down Expand Up @@ -2167,7 +2257,10 @@ def partial_update(self, request, pk=None):
# Nested models with prefetch make the response schema too long for Swagger UI
class StubFindingsViewSet(
PrefetchDojoModelViewSet,
DeprecationNoticeMixin,
):
deprecated = True
end_of_life_date = datetime(2026, 6, 1)
serializer_class = serializers.StubFindingSerializer
queryset = Stub_Finding.objects.none()
filter_backends = (DjangoFilterBackend,)
Expand All @@ -2187,6 +2280,48 @@ def get_serializer_class(self):
return serializers.StubFindingCreateSerializer
return serializers.StubFindingSerializer

@extend_schema(
deprecated=True,
description="This endpoint is deprecated and will be removed on 2026-06-01.",
)
def list(self, request, *args, **kwargs):
return super().list(request, *args, **kwargs)

@extend_schema(
deprecated=True,
description="This endpoint is deprecated and will be removed on 2026-06-01.",
)
def retrieve(self, request, *args, **kwargs):
return super().retrieve(request, *args, **kwargs)

@extend_schema(
deprecated=True,
description="This endpoint is deprecated and will be removed on 2026-06-01.",
)
def create(self, request, *args, **kwargs):
return super().create(request, *args, **kwargs)

@extend_schema(
deprecated=True,
description="This endpoint is deprecated and will be removed on 2026-06-01.",
)
def update(self, request, *args, **kwargs):
return super().update(request, *args, **kwargs)

@extend_schema(
deprecated=True,
description="This endpoint is deprecated and will be removed on 2026-06-01.",
)
def partial_update(self, request, *args, **kwargs):
return super().partial_update(request, *args, **kwargs)

@extend_schema(
deprecated=True,
description="This endpoint is deprecated and will be removed on 2026-06-01.",
)
def destroy(self, request, *args, **kwargs):
return super().destroy(request, *args, **kwargs)


# Authorization: authenticated, configuration
class DevelopmentEnvironmentViewSet(
Expand Down
Loading
Loading