diff --git a/schema.yml b/schema.yml index b86903855..db5d79ad3 100644 --- a/schema.yml +++ b/schema.yml @@ -92,6 +92,32 @@ paths: schema: $ref: '#/components/schemas/GenericError' description: '' + post: + operationId: admin_system_create + description: Get system information. + tags: + - admin + security: + - authentik: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/System' + description: '' + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ValidationError' + description: '' + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/GenericError' + description: '' /admin/system_tasks/: get: operationId: admin_system_tasks_list diff --git a/web/src/admin/DebugPage.ts b/web/src/admin/DebugPage.ts new file mode 100644 index 000000000..76a28112a --- /dev/null +++ b/web/src/admin/DebugPage.ts @@ -0,0 +1,74 @@ +import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; +import { MessageLevel } from "@goauthentik/common/messages"; +import { AKElement } from "@goauthentik/elements/Base"; +import "@goauthentik/elements/PageHeader"; +import { showMessage } from "@goauthentik/elements/messages/MessageContainer"; +import * as Sentry from "@sentry/browser"; + +import { CSSResult, TemplateResult, html } from "lit"; +import { customElement } from "lit/decorators.js"; + +import AKGlobal from "@goauthentik/common/styles/authentik.css"; +import PFButton from "@patternfly/patternfly/components/Button/button.css"; +import PFCard from "@patternfly/patternfly/components/Card/card.css"; +import PFPage from "@patternfly/patternfly/components/Page/page.css"; +import PFGrid from "@patternfly/patternfly/layouts/Grid/grid.css"; +import PFBase from "@patternfly/patternfly/patternfly-base.css"; + +import { AdminApi } from "@goauthentik/api"; + +@customElement("ak-admin-debug-page") +export class DebugPage extends AKElement { + static get styles(): CSSResult[] { + return [PFBase, PFCard, PFPage, PFGrid, PFButton, AKGlobal]; + } + + render(): TemplateResult { + return html` + + + + + Sentry + + { + Sentry.captureException(new Error("test error")); + }} + > + Send test error + + + + + Misc + + { + new AdminApi(DEFAULT_CONFIG) + .adminSystemCreate() + .then(() => { + showMessage({ + level: MessageLevel.success, + message: "Success", + }); + }) + .catch((exc) => { + showMessage({ + level: MessageLevel.error, + message: exc, + }); + }); + }} + > + POST System + + + + + + `; + } +} diff --git a/web/src/admin/Routes.ts b/web/src/admin/Routes.ts index 999acf4fd..434dd327f 100644 --- a/web/src/admin/Routes.ts +++ b/web/src/admin/Routes.ts @@ -132,4 +132,8 @@ export const ROUTES: Route[] = [ await import("@goauthentik/admin/blueprints/BlueprintListPage"); return html``; }), + new Route(new RegExp("^/debug$"), async () => { + await import("@goauthentik/admin/DebugPage"); + return html``; + }), ];