diff --git a/packages/backend-defaults/report-httpRouter.api.md b/packages/backend-defaults/report-httpRouter.api.md index 97805bc926..b8587db287 100644 --- a/packages/backend-defaults/report-httpRouter.api.md +++ b/packages/backend-defaults/report-httpRouter.api.md @@ -3,9 +3,43 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts +import { AuthService } from '@backstage/backend-plugin-api'; +import express from 'express'; +import { HttpAuthService } from '@backstage/backend-plugin-api'; import { HttpRouterService } from '@backstage/backend-plugin-api'; +import { HttpRouterServiceAuthPolicy } from '@backstage/backend-plugin-api'; +import { HumanDuration } from '@backstage/types'; +import { LifecycleService } from '@backstage/backend-plugin-api'; +import { RequestHandler } from 'express'; +import { RootConfigService } from '@backstage/backend-plugin-api'; +import { Router } from 'express'; import { ServiceFactory } from '@backstage/backend-plugin-api'; +// @public (undocumented) +export function createAuthIntegrationRouter(options: { + auth: AuthService; +}): express.Router; + +// @public +export function createCookieAuthRefreshMiddleware(options: { + auth: AuthService; + httpAuth: HttpAuthService; +}): Router; + +// @public (undocumented) +export function createCredentialsBarrier(options: { + httpAuth: HttpAuthService; + config: RootConfigService; +}): { + middleware: RequestHandler; + addAuthPolicy: (policy: HttpRouterServiceAuthPolicy) => void; +}; + +// @public +export function createLifecycleMiddleware( + options: LifecycleMiddlewareOptions, +): RequestHandler; + // @public export const httpRouterServiceFactory: ServiceFactory< HttpRouterService, @@ -13,5 +47,12 @@ export const httpRouterServiceFactory: ServiceFactory< 'singleton' >; +// @public +export interface LifecycleMiddlewareOptions { + // (undocumented) + lifecycle: LifecycleService; + startupRequestPauseTimeout?: HumanDuration; +} + // (No @packageDocumentation comment for this package) ``` diff --git a/packages/backend-defaults/src/entrypoints/httpRouter/createAuthIntegrationRouter.ts b/packages/backend-defaults/src/entrypoints/httpRouter/http/createAuthIntegrationRouter.ts similarity index 98% rename from packages/backend-defaults/src/entrypoints/httpRouter/createAuthIntegrationRouter.ts rename to packages/backend-defaults/src/entrypoints/httpRouter/http/createAuthIntegrationRouter.ts index ef36e7ba2d..3d36ef8e34 100644 --- a/packages/backend-defaults/src/entrypoints/httpRouter/createAuthIntegrationRouter.ts +++ b/packages/backend-defaults/src/entrypoints/httpRouter/http/createAuthIntegrationRouter.ts @@ -18,6 +18,9 @@ import { AuthService } from '@backstage/backend-plugin-api'; import express from 'express'; import Router from 'express-promise-router'; +/** + * @public + */ export function createAuthIntegrationRouter(options: { auth: AuthService; }): express.Router { diff --git a/packages/backend-defaults/src/entrypoints/httpRouter/createCookieAuthRefreshMiddleware.test.ts b/packages/backend-defaults/src/entrypoints/httpRouter/http/createCookieAuthRefreshMiddleware.test.ts similarity index 100% rename from packages/backend-defaults/src/entrypoints/httpRouter/createCookieAuthRefreshMiddleware.test.ts rename to packages/backend-defaults/src/entrypoints/httpRouter/http/createCookieAuthRefreshMiddleware.test.ts diff --git a/packages/backend-defaults/src/entrypoints/httpRouter/createCookieAuthRefreshMiddleware.ts b/packages/backend-defaults/src/entrypoints/httpRouter/http/createCookieAuthRefreshMiddleware.ts similarity index 100% rename from packages/backend-defaults/src/entrypoints/httpRouter/createCookieAuthRefreshMiddleware.ts rename to packages/backend-defaults/src/entrypoints/httpRouter/http/createCookieAuthRefreshMiddleware.ts diff --git a/packages/backend-defaults/src/entrypoints/httpRouter/createCredentialsBarrier.test.ts b/packages/backend-defaults/src/entrypoints/httpRouter/http/createCredentialsBarrier.test.ts similarity index 100% rename from packages/backend-defaults/src/entrypoints/httpRouter/createCredentialsBarrier.test.ts rename to packages/backend-defaults/src/entrypoints/httpRouter/http/createCredentialsBarrier.test.ts diff --git a/packages/backend-defaults/src/entrypoints/httpRouter/createCredentialsBarrier.ts b/packages/backend-defaults/src/entrypoints/httpRouter/http/createCredentialsBarrier.ts similarity index 99% rename from packages/backend-defaults/src/entrypoints/httpRouter/createCredentialsBarrier.ts rename to packages/backend-defaults/src/entrypoints/httpRouter/http/createCredentialsBarrier.ts index dd6c95ca82..f6332c6d28 100644 --- a/packages/backend-defaults/src/entrypoints/httpRouter/createCredentialsBarrier.ts +++ b/packages/backend-defaults/src/entrypoints/httpRouter/http/createCredentialsBarrier.ts @@ -36,6 +36,9 @@ export function createPathPolicyPredicate(policyPath: string) { }; } +/** + * @public + */ export function createCredentialsBarrier(options: { httpAuth: HttpAuthService; config: RootConfigService; diff --git a/packages/backend-defaults/src/entrypoints/httpRouter/createLifecycleMiddleware.test.ts b/packages/backend-defaults/src/entrypoints/httpRouter/http/createLifecycleMiddleware.test.ts similarity index 96% rename from packages/backend-defaults/src/entrypoints/httpRouter/createLifecycleMiddleware.test.ts rename to packages/backend-defaults/src/entrypoints/httpRouter/http/createLifecycleMiddleware.test.ts index 31eecf14bb..3b85c8cb92 100644 --- a/packages/backend-defaults/src/entrypoints/httpRouter/createLifecycleMiddleware.test.ts +++ b/packages/backend-defaults/src/entrypoints/httpRouter/http/createLifecycleMiddleware.test.ts @@ -15,7 +15,7 @@ */ import { createLifecycleMiddleware } from './createLifecycleMiddleware'; -import { BackendLifecycleImpl } from '../rootLifecycle/rootLifecycleServiceFactory'; +import { BackendLifecycleImpl } from '../../rootLifecycle/rootLifecycleServiceFactory'; import { mockServices } from '@backstage/backend-test-utils'; import { ServiceUnavailableError } from '@backstage/errors'; diff --git a/packages/backend-defaults/src/entrypoints/httpRouter/createLifecycleMiddleware.ts b/packages/backend-defaults/src/entrypoints/httpRouter/http/createLifecycleMiddleware.ts similarity index 99% rename from packages/backend-defaults/src/entrypoints/httpRouter/createLifecycleMiddleware.ts rename to packages/backend-defaults/src/entrypoints/httpRouter/http/createLifecycleMiddleware.ts index 18ff2f0840..3f8ee3ea69 100644 --- a/packages/backend-defaults/src/entrypoints/httpRouter/createLifecycleMiddleware.ts +++ b/packages/backend-defaults/src/entrypoints/httpRouter/http/createLifecycleMiddleware.ts @@ -23,7 +23,7 @@ export const DEFAULT_TIMEOUT = { seconds: 5 }; /** * Options for {@link createLifecycleMiddleware}. - * @internal + * @public */ export interface LifecycleMiddlewareOptions { lifecycle: LifecycleService; @@ -47,7 +47,7 @@ export interface LifecycleMiddlewareOptions { * If the service is shutting down, all requests will be rejected with a * {@link @backstage/errors#ServiceUnavailableError}. * - * @internal + * @public */ export function createLifecycleMiddleware( options: LifecycleMiddlewareOptions, diff --git a/packages/backend-defaults/src/entrypoints/httpRouter/http/index.ts b/packages/backend-defaults/src/entrypoints/httpRouter/http/index.ts new file mode 100644 index 0000000000..d31ea74fe8 --- /dev/null +++ b/packages/backend-defaults/src/entrypoints/httpRouter/http/index.ts @@ -0,0 +1,20 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export { createAuthIntegrationRouter } from './createAuthIntegrationRouter'; +export { createCredentialsBarrier } from './createCredentialsBarrier'; +export { createLifecycleMiddleware } from './createLifecycleMiddleware'; +export type { LifecycleMiddlewareOptions } from './createLifecycleMiddleware'; +export { createCookieAuthRefreshMiddleware } from './createCookieAuthRefreshMiddleware'; diff --git a/packages/backend-defaults/src/entrypoints/httpRouter/httpRouterServiceFactory.ts b/packages/backend-defaults/src/entrypoints/httpRouter/httpRouterServiceFactory.ts index fb2646580b..0557cb636d 100644 --- a/packages/backend-defaults/src/entrypoints/httpRouter/httpRouterServiceFactory.ts +++ b/packages/backend-defaults/src/entrypoints/httpRouter/httpRouterServiceFactory.ts @@ -21,10 +21,12 @@ import { createServiceFactory, HttpRouterServiceAuthPolicy, } from '@backstage/backend-plugin-api'; -import { createLifecycleMiddleware } from './createLifecycleMiddleware'; -import { createCredentialsBarrier } from './createCredentialsBarrier'; -import { createAuthIntegrationRouter } from './createAuthIntegrationRouter'; -import { createCookieAuthRefreshMiddleware } from './createCookieAuthRefreshMiddleware'; +import { + createLifecycleMiddleware, + createCookieAuthRefreshMiddleware, + createCredentialsBarrier, + createAuthIntegrationRouter, +} from './http'; /** * HTTP route registration for plugins. diff --git a/packages/backend-defaults/src/entrypoints/httpRouter/index.ts b/packages/backend-defaults/src/entrypoints/httpRouter/index.ts index 15bced5ef3..fc9752bdc1 100644 --- a/packages/backend-defaults/src/entrypoints/httpRouter/index.ts +++ b/packages/backend-defaults/src/entrypoints/httpRouter/index.ts @@ -15,3 +15,4 @@ */ export { httpRouterServiceFactory } from './httpRouterServiceFactory'; +export * from './http';