diff --git a/authentik/admin/tests/test_api.py b/authentik/admin/tests/test_api.py
index ae0f0ab68..fbcf762f1 100644
--- a/authentik/admin/tests/test_api.py
+++ b/authentik/admin/tests/test_api.py
@@ -19,12 +19,19 @@ class TestAdminAPI(TestCase):
self.group.save()
self.client.force_login(self.user)
- def test_overview(self):
- """Test Overview API"""
- response = self.client.get(reverse("authentik_api:admin_overview-list"))
+ def test_version(self):
+ """Test Version API"""
+ response = self.client.get(reverse("authentik_api:admin_version-list"))
self.assertEqual(response.status_code, 200)
body = loads(response.content)
- self.assertEqual(body["version"], __version__)
+ self.assertEqual(body["version_current"], __version__)
+
+ def test_workers(self):
+ """Test Workers API"""
+ response = self.client.get(reverse("authentik_api:admin_workers-list"))
+ self.assertEqual(response.status_code, 200)
+ body = loads(response.content)
+ self.assertEqual(body["pagination"]["count"], 0)
def test_metrics(self):
"""Test metrics API"""
diff --git a/swagger.yaml b/swagger.yaml
index 3cd08237b..f19460c08 100755
--- a/swagger.yaml
+++ b/swagger.yaml
@@ -22,11 +22,11 @@ paths:
/admin/metrics/:
get:
operationId: admin_metrics_list
- description: Return single instance of AdministrationMetricsSerializer
+ description: Login Metrics per 1h
parameters: []
responses:
'200':
- description: Overview View
+ description: Login Metrics per 1h
schema:
description: ''
type: array
@@ -35,22 +35,6 @@ paths:
tags:
- admin
parameters: []
- /admin/overview/:
- get:
- operationId: admin_overview_list
- description: Return single instance of AdministrationOverviewSerializer
- parameters: []
- responses:
- '200':
- description: Overview View
- schema:
- description: ''
- type: array
- items:
- $ref: '#/definitions/AdministrationOverview'
- tags:
- - admin
- parameters: []
/admin/system_tasks/:
get:
operationId: admin_system_tasks_list
@@ -82,6 +66,95 @@ paths:
in: path
required: true
type: string
+ /admin/version/:
+ get:
+ operationId: admin_version_list
+ description: Get running and latest version.
+ parameters:
+ - name: ordering
+ in: query
+ description: Which field to use when ordering the results.
+ required: false
+ type: string
+ - name: search
+ in: query
+ description: A search term.
+ required: false
+ type: string
+ - name: page
+ in: query
+ description: A page number within the paginated result set.
+ required: false
+ type: integer
+ - name: page_size
+ in: query
+ description: Number of results to return per page.
+ required: false
+ type: integer
+ responses:
+ '200':
+ description: Get running and latest version.
+ schema:
+ description: ''
+ type: array
+ items:
+ $ref: '#/definitions/Version'
+ tags:
+ - admin
+ parameters: []
+ /admin/workers/:
+ get:
+ operationId: admin_workers_list
+ description: Get currently connected worker count.
+ parameters:
+ - name: ordering
+ in: query
+ description: Which field to use when ordering the results.
+ required: false
+ type: string
+ - name: search
+ in: query
+ description: A search term.
+ required: false
+ type: string
+ - name: page
+ in: query
+ description: A page number within the paginated result set.
+ required: false
+ type: integer
+ - name: page_size
+ in: query
+ description: Number of results to return per page.
+ required: false
+ type: integer
+ responses:
+ '200':
+ description: ''
+ schema:
+ required:
+ - count
+ - results
+ type: object
+ properties:
+ count:
+ type: integer
+ next:
+ type: string
+ format: uri
+ x-nullable: true
+ previous:
+ type: string
+ format: uri
+ x-nullable: true
+ results:
+ type: array
+ items:
+ description: ''
+ type: object
+ properties: {}
+ tags:
+ - admin
+ parameters: []
/audit/events/:
get:
operationId: audit_events_list
@@ -1062,6 +1135,59 @@ paths:
required: true
type: string
format: uuid
+ /flows/cached/:
+ get:
+ operationId: flows_cached_list
+ description: Info about cached flows
+ parameters:
+ - name: ordering
+ in: query
+ description: Which field to use when ordering the results.
+ required: false
+ type: string
+ - name: search
+ in: query
+ description: A search term.
+ required: false
+ type: string
+ - name: page
+ in: query
+ description: A page number within the paginated result set.
+ required: false
+ type: integer
+ - name: page_size
+ in: query
+ description: Number of results to return per page.
+ required: false
+ type: integer
+ responses:
+ '200':
+ description: ''
+ schema:
+ required:
+ - count
+ - results
+ type: object
+ properties:
+ count:
+ type: integer
+ next:
+ type: string
+ format: uri
+ x-nullable: true
+ previous:
+ type: string
+ format: uri
+ x-nullable: true
+ results:
+ type: array
+ items:
+ description: ''
+ type: object
+ properties: {}
+ tags:
+ - flows
+ parameters: []
/flows/instances/:
get:
operationId: flows_instances_list
@@ -1702,6 +1828,16 @@ paths:
operationId: policies_all_list
description: Policy Viewset
parameters:
+ - name: bindings__isnull
+ in: query
+ description: ''
+ required: false
+ type: string
+ - name: promptstage__isnull
+ in: query
+ description: ''
+ required: false
+ type: string
- name: ordering
in: query
description: Which field to use when ordering the results.
@@ -1919,6 +2055,59 @@ paths:
required: true
type: string
format: uuid
+ /policies/cached/:
+ get:
+ operationId: policies_cached_list
+ description: Info about cached policies
+ parameters:
+ - name: ordering
+ in: query
+ description: Which field to use when ordering the results.
+ required: false
+ type: string
+ - name: search
+ in: query
+ description: A search term.
+ required: false
+ type: string
+ - name: page
+ in: query
+ description: A page number within the paginated result set.
+ required: false
+ type: integer
+ - name: page_size
+ in: query
+ description: Number of results to return per page.
+ required: false
+ type: integer
+ responses:
+ '200':
+ description: ''
+ schema:
+ required:
+ - count
+ - results
+ type: object
+ properties:
+ count:
+ type: integer
+ next:
+ type: string
+ format: uri
+ x-nullable: true
+ previous:
+ type: string
+ format: uri
+ x-nullable: true
+ results:
+ type: array
+ items:
+ description: ''
+ type: object
+ properties: {}
+ tags:
+ - policies
+ parameters: []
/policies/dummy/:
get:
operationId: policies_dummy_list
@@ -3264,6 +3453,11 @@ paths:
operationId: providers_all_list
description: Provider Viewset
parameters:
+ - name: application__isnull
+ in: query
+ description: ''
+ required: false
+ type: string
- name: ordering
in: query
description: Which field to use when ordering the results.
@@ -3309,6 +3503,22 @@ paths:
$ref: '#/definitions/Provider'
tags:
- providers
+ post:
+ operationId: providers_all_create
+ description: Provider Viewset
+ parameters:
+ - name: data
+ in: body
+ required: true
+ schema:
+ $ref: '#/definitions/Provider'
+ responses:
+ '201':
+ description: ''
+ schema:
+ $ref: '#/definitions/Provider'
+ tags:
+ - providers
parameters: []
/providers/all/{id}/:
get:
@@ -3322,6 +3532,47 @@ paths:
$ref: '#/definitions/Provider'
tags:
- providers
+ put:
+ operationId: providers_all_update
+ description: Provider Viewset
+ parameters:
+ - name: data
+ in: body
+ required: true
+ schema:
+ $ref: '#/definitions/Provider'
+ responses:
+ '200':
+ description: ''
+ schema:
+ $ref: '#/definitions/Provider'
+ tags:
+ - providers
+ patch:
+ operationId: providers_all_partial_update
+ description: Provider Viewset
+ parameters:
+ - name: data
+ in: body
+ required: true
+ schema:
+ $ref: '#/definitions/Provider'
+ responses:
+ '200':
+ description: ''
+ schema:
+ $ref: '#/definitions/Provider'
+ tags:
+ - providers
+ delete:
+ operationId: providers_all_delete
+ description: Provider Viewset
+ parameters: []
+ responses:
+ '204':
+ description: ''
+ tags:
+ - providers
parameters:
- name: id
in: path
@@ -6421,7 +6672,7 @@ paths:
format: uuid
definitions:
AdministrationMetrics:
- description: Overview View
+ description: Login Metrics per 1h
type: object
properties:
logins_per_1h:
@@ -6432,38 +6683,6 @@ definitions:
title: Logins failed per 1h
type: string
readOnly: true
- AdministrationOverview:
- description: Overview View
- type: object
- properties:
- version:
- title: Version
- type: string
- readOnly: true
- version_latest:
- title: Version latest
- type: string
- readOnly: true
- worker_count:
- title: Worker count
- type: integer
- readOnly: true
- providers_without_application:
- title: Providers without application
- type: integer
- readOnly: true
- policies_without_binding:
- title: Policies without binding
- type: integer
- readOnly: true
- cached_policies:
- title: Cached policies
- type: integer
- readOnly: true
- cached_flows:
- title: Cached flows
- type: integer
- readOnly: true
Task:
description: Serialize TaskInfo and TaskResult
required:
@@ -6494,6 +6713,22 @@ definitions:
type: array
items:
type: string
+ Version:
+ description: Get running and latest version.
+ type: object
+ properties:
+ version_current:
+ title: Version current
+ type: string
+ readOnly: true
+ version_latest:
+ title: Version latest
+ type: string
+ readOnly: true
+ outdated:
+ title: Outdated
+ type: boolean
+ readOnly: true
Event:
description: Event Serializer
required:
@@ -7480,6 +7715,7 @@ definitions:
description: Provider Serializer
required:
- name
+ - application
- authorization_flow
type: object
properties:
@@ -7491,6 +7727,9 @@ definitions:
title: Name
type: string
minLength: 1
+ application:
+ title: Application
+ type: string
authorization_flow:
title: Authorization flow
description: Flow used when authorizing this provider.
diff --git a/web/src/pages/admin-overview/AdminOverviewPage.ts b/web/src/pages/admin-overview/AdminOverviewPage.ts
index 222da610e..3f0754a62 100644
--- a/web/src/pages/admin-overview/AdminOverviewPage.ts
+++ b/web/src/pages/admin-overview/AdminOverviewPage.ts
@@ -42,7 +42,7 @@ export class AdminOverviewPage extends LitElement {
-
+