{"_id":"@bdusfu/bac-change-management-frontend","name":"@bdusfu/bac-change-management-frontend","dist-tags":{"latest":"0.3.9"},"versions":{"0.3.9":{"name":"@bdusfu/bac-change-management-frontend","version":"0.3.9","main":"src/index.ts","types":"src/index.ts","exports":{".":"./src/index.ts","./alpha":"./src/alpha.tsx","./package.json":"./package.json"},"license":"Apache-2.0","publishConfig":{"access":"public","main":"dist/index.esm.js","types":"dist/index.d.ts"},"backstage":{"role":"frontend-plugin","pluginId":"change-management","pluginPackages":["@bdusfu/bac-change-management-frontend","@bdusfu/bac-change-management-backend"]},"sideEffects":false,"scripts":{"start":"backstage-cli package start","build":"backstage-cli package build","lint":"backstage-cli package lint","test":"backstage-cli package test","clean":"backstage-cli package clean","prepack":"backstage-cli package prepack","postpack":"backstage-cli package postpack"},"dependencies":{"@backstage/core-compat-api":"^0.5.10","@backstage/core-components":"^0.18.9","@backstage/core-plugin-api":"^1.12.5","@backstage/frontend-plugin-api":"^0.16.2","@backstage/theme":"^0.7.3","@emotion/react":"^11.14.0","@emotion/styled":"^11.14.1","@material-ui/core":"^4.12.4","@material-ui/icons":"^4.11.3","@material-ui/lab":"^4.0.0-alpha.61","@mui/icons-material":"^5.15.6","@mui/material":"^5.15.7","@mui/x-date-pickers":"^7.7.0","dayjs":"^1.11.20","material-react-table":"^3.2.1","material-ui-nested-menu-item":"^1.0.2","react-use":"^17.6.0"},"peerDependencies":{"react":"^16.13.1 || ^17.0.0 || ^18.0.0"},"devDependencies":{"@backstage/cli":"^0.36.1","@backstage/core-app-api":"^1.20.0","@backstage/dev-utils":"^1.1.22","@backstage/test-utils":"^1.7.17","@testing-library/react":"^16.3.2","@testing-library/user-event":"^14.6.1","msw":"^2.13.6"},"gitHead":"21d7c2b8133e5f3132c7c1be760e6e25e1d78936","_id":"@bdusfu/bac-change-management-frontend@0.3.9","description":"A Backstage frontend plugin providing a full-featured **IT Change Management (DCM)** interface. It enables developers to create, edit, filter, and approve IT change requests and their associated deployment/DBA activities through a digitized workflow.","_nodeVersion":"24.14.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-x7IdFLBWTF4t6qCs9YHiG4Qa34TshJivfUFuU1C+pMwPpTKKRXzF8FZroQCw7bAR/B6oHaZykSL3ub3Jcjn7iQ==","shasum":"65e6e6d49a4a9b1aedb53fae30f8d53467af17b8","tarball":"https://registry.npmjs.org/@bdusfu/bac-change-management-frontend/-/bac-change-management-frontend-0.3.9.tgz","fileCount":68,"unpackedSize":559590,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFXsyDAu6aINKWZrC1RuQKdjaKktuhND7ICy2YicugJXAiEAjhzQWWM94aRxksdkIM2ImVot5rnZmoJfGWubIqY3Tzc="}]},"_npmUser":{"name":"bdusfu","email":"sfu@bankdata.dk"},"directories":{},"maintainers":[{"name":"bdusfu","email":"sfu@bankdata.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/bac-change-management-frontend_0.3.9_1779442697871_0.9547200229170152"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-22T09:38:17.729Z","0.3.9":"2026-05-22T09:38:18.041Z","modified":"2026-05-22T09:38:18.241Z"},"maintainers":[{"name":"bdusfu","email":"sfu@bankdata.dk"}],"description":"A Backstage frontend plugin providing a full-featured **IT Change Management (DCM)** interface. It enables developers to create, edit, filter, and approve IT change requests and their associated deployment/DBA activities through a digitized workflow.","license":"Apache-2.0","readme":"# bac-change-management-frontend\n\nA Backstage frontend plugin providing a full-featured **IT Change Management (DCM)** interface. It enables developers to create, edit, filter, and approve IT change requests and their associated deployment/DBA activities through a digitized workflow.\n\n## What it does\n\n- **Create/edit changes** with all required fields (category, STF, cause, risk, dates, implementation plan, fallback plan, test documentation)\n- **Create/edit activities** under a change (DCP deployments or DBA activities) with JFrog Artifactory SHA-1 artifact validation\n- **Filter and search** changes by ID, owner, status, STF, cause, category, and dates\n- **Approve changes** with audit logging (user email, Entra ID token, timestamp, device type)\n- **Update change status** through the lifecycle: ÅBENT → BKLAR → KLAR → LUKKET (with validation rules)\n\n## UI structure\n\nThe plugin has two tabs:\n\n### Tab 1: Changes (`/change-management/changes`)\n\n| Component | Purpose |\n|---|---|\n| Filter panel | Search by Change ID, Owner (catalog users), Status, STF (catalog systems), Cause, Category, B/P Date |\n| Change table | Data grid with expandable rows showing activities; row actions for edit, duplicate, create activity, update status |\n| Create/Edit dialogs | Slide-in forms for full change CRUD |\n| Activity dialogs | Create/edit deployment or DBA activities |\n\n### Tab 2: Approvals (`/change-management/approve`)\n\n| Component | Purpose |\n|---|---|\n| Pending approvals table | All changes awaiting approval with expandable activity details |\n| Approve dialog | Full change review with authorised approver verification |\n\n## Route\n\n| Path | Plugin ID |\n|---|---|\n| `/change-management` | `change-management` |\n\n## Backend API\n\nCommunicates with `@bdusfu/bac-change-management-backend` (resolved via Backstage discovery). Authentication is via an MSAL token passed in the `x-authorization` header.\n\n## Catalog integration\n\n- Fetches all `kind: System` entities for STF autocomplete\n- Fetches all `kind: User` entities for Owner autocomplete (with profile picture, display name, email)\n\n## Domain constants\n\n| Concept | Values |\n|---|---|\n| Category | Normal (2), Emergency (2N) |\n| Cause of Change | New feature (1), Maintenance (2), Error correction (3) |\n| Risk Level | Critical, High, Medium, Low |\n| Activity Type | DCP, DBA |\n| Deployment Type | BCA, BPM, EARKIV, JAVAZOS BATCH, JAVAZOS CICS, MEP, NBP, WCM, WCM2 |\n| Change Status | ÅBENT, BKLAR, KLAR, LUKKET, ANN, LUKFEJL |\n\n## Authentication\n\n| Provider | Purpose |\n|---|---|\n| Microsoft Auth (`microsoftAuthApiRef`) | MSAL token for Rumorboy API / Entra ID for approval audit |\n| Backstage Identity (`identityApiRef`) | Current user ID, email, UBI identifier |\n\n## Local development\n\n```bash\ncd plugins/bac-change-management-frontend\nyarn start\n```\n\nThe standalone dev setup is in the [/dev](./dev) directory. Navigate to [/change-management](http://localhost:3000/change-management).\n\n## Dependencies\n\n| Package | Purpose |\n|---|---|\n| `material-react-table` v3 | Data grid tables |\n| `@mui/x-date-pickers` / `dayjs` | Date picker fields |\n| `material-ui-nested-menu-item` | Nested status update menu |\n| `@backstage/core-plugin-api` | Identity, discovery, fetch APIs |\n| `@backstage/plugin-catalog-react` | Catalog entity queries |\n","readmeFilename":"README.md","_rev":"1-d23d7945df0f9b64e8e7dd9580c3f3d3"}