UNPKG

@parsifal-m/plugin-permission-backend-module-opa-wrapper

Version:

A Backstage backend module that integrates Open Policy Agent (OPA) with the Backstage Permission Framework for policy-based authorization.

33 lines (29 loc) 1.07 kB
'use strict'; var backendPluginApi = require('@backstage/backend-plugin-api'); var alpha = require('@backstage/plugin-permission-node/alpha'); var policy = require('./policy.cjs.js'); var opaClient = require('./opa-client/opaClient.cjs.js'); const permissionModuleOpaWrapper = backendPluginApi.createBackendModule({ pluginId: "permission", moduleId: "opa-wrapper", register(reg) { reg.registerInit({ deps: { config: backendPluginApi.coreServices.rootConfig, logger: backendPluginApi.coreServices.logger, policy: alpha.policyExtensionPoint }, async init({ config, logger, policy: policy$1 }) { const opaClient$1 = new opaClient.OpaClient(config, logger); const entryPoint = config.getOptionalString( "permission.opa.policy.policyEntryPoint" ); policy$1.setPolicy( new policy.OpaPermissionPolicy(opaClient$1, logger, entryPoint) ); } }); } }); exports.permissionModuleOpaWrapper = permissionModuleOpaWrapper; //# sourceMappingURL=module.cjs.js.map