@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
JavaScript
;
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