phenix-dashboard-task
Tiny scheduled console job on .NET Framework 4.6.2 that calls the Phenix dashboard API's refresh endpoint to rebuild dashboard data.
Health score
0 to 100 across seven weighted factors; nothing is hidden. Green is 75 and above, amber 50 to 74, red below 50. How scoring works.
Facts
| Languages | csharp |
| Frameworks | TC.MaintainanceTools.SimpleJobs |
| Runtimes | .NET Framework 4.6.2 |
| Tests / CI | none / CI in place |
| Last commit | 2023-10-05 |
| Owner | Owner unknown (mapping to be curated) |
| Domain | Agent tools and community (system generated; curate in repo-owners.json to override) |
| Product area | Phenix |
| Hosted | On-prem Deployed to our own machines
|
| Releases | 1 release pipeline(s): \ops\dashboard\phenix-dashboard-task CI |
| Integration | rest |
| Source | Open in Azure DevOps |
Risk flags
Each flag links to its glossary definition.
Dependencies in context
Entanglement
loose No binding mechanisms apply: this system needs no untangling work.
Depends on / used by
Migration playbooks
Generated from this repo's assessment data: what is feasible, what blocks it, and the steps in order. Ratings: green means actionable now, amber means sequence other work first, red means blocked, grey means not applicable.
ZDD adoption
Not applicableNot a deployed service (libraries, database definitions, desktop apps) or a retirement candidate not worth the investment. Retirement or consolidation candidate; do not invest in ZDD adoption.
SQL Server exit
Not applicableNo SQL Server dependency is recorded for this repo. Nothing to migrate.
Containerisation
Retire insteadThis repo is a retirement or consolidation candidate; containerising it would be investment in something we intend to switch off.
Recommended actions
Review phenix-dashboard-task for retirement
Dormant (last commit 2023-10-05) yet still release-linked, and nothing depends on it. Confirm remaining use, then retire and disarm its pipeline.
Impact: Shrinks the estate before the expensive work begins
proposedAssessment notes
phenix-dashboard-task
Purpose
A single-job console application built on the TC.MaintainanceTools.SimpleJobs framework. Its one job, PhenixDashboardTask, issues an HTTP GET to {environment}/api/Dashboard/refresh (with a configurable api-version header and a 10-minute timeout) and fails loudly on any non-200 response — a scheduled trigger for the dashboard API's data refresh.
Tech stack
One C# console project on .NET Framework 4.6.2, legacy csproj with packages.config. SimpleInjector for wiring, Newtonsoft.Json for response logging, TC.MaintainanceTools.SimpleJobs (+ WebOrAppConfig configuration) for the job runner. Roughly 100 lines of application code in total.
Deployment
prod_application with 1 release. Build pipelines phenix-dashboard-task CI and phenix-dashboard-task release (classic — no YAML in the repo); release pipeline \ops\dashboard\phenix-dashboard-task CI. deployment/ PowerShell scripts handle config replacement, path creation and a Slack webhook notification; App.preproduction/production.config transforms point environment at the right base URL.
Dependencies
Internal: TC.MaintainanceTools.SimpleJobs.* (maintainancetools-base-fault-handling-jobs) and, at runtime, the dashboard refresh endpoint served by phenix-dashboard-api. External: Slack incoming webhook used by the deployment script only.
Data stores
None. All state lives behind the dashboard API it calls.
Integration points
Outbound REST only — one GET to the dashboard API per scheduled run.
Code health
No tests, no README. Dormant since 2023-10-05, which is unsurprising for a job this small; it presumably keeps running unchanged in production. The System.DirectoryServices.AccountManagement package reference appears unused by the job code.
Modernisation risks
Low as a standalone item: the whole thing is a cron-style HTTP ping on an EOL runtime (.NET Framework 4.6.2). It could be replaced by a scheduler-native HTTP call or absorbed into phenix-dashboard-api as a hosted background timer, eliminating the repo; worth folding into whatever pattern the estate adopts for the other SimpleJobs-based tasks rather than modernising individually.