Enhance RxResume validation, settings handling, and caching (#287)

* feat: enhance validation handling in ReactiveResumeConfigPanel and rxresume-config

* feat: enhance RxResume validation handling in SettingsPage and ReactiveResumeSection

* feat: enhance RxResume settings handling and cache management

* feat: add save-time validation and caching for Reactive Resume settings

* refactor: improve code formatting and readability across multiple files

* fix: improve condition check in hasOverrideKey function

* feat: enhance RxResume validation and settings handling with precheck options

* refactor: streamline RxResume client initialization and improve backup sorting logic
This commit is contained in:
Ammad Ali
2026-03-19 11:38:04 +00:00
committed by GitHub
parent 4787f4d151
commit ac0a1281f4
28 changed files with 1364 additions and 345 deletions
@@ -108,6 +108,14 @@ Or via environment variables:
If you leave the URL blank in the dashboard, JobOps uses `RXRESUME_URL` when it is set; if not set, it falls back to the public cloud default for the selected mode.
### Save-time validation
When you save Reactive Resume credentials or the shared URL in Settings:
1. JobOps validates only the credential-bearing Reactive Resume fields for the selected mode.
2. Invalid credentials or other `4xx` configuration failures block the save and show a persistent inline error.
3. Temporary network failures, timeouts, or upstream `5xx` errors show a persistent inline warning, but the save still succeeds.
### 2) Select base resume
In **Settings → Reactive Resume**:
@@ -139,6 +147,12 @@ High-level flow:
6. Export PDF.
7. Delete temporary resume.
### Resume-data caching
JobOps caches successful Reactive Resume resume fetches in memory for 5 minutes.
This reduces repeated API calls from settings loads, profile checks, project lookups, and PDF generation while still refreshing often enough for normal editing workflows.
### Per-job tracer links
Before generating a PDF, each job can enable/disable tracer links.
@@ -208,6 +222,8 @@ curl -X POST "http://localhost:3001/api/jobs/<jobId>/generate-pdf"
- Ensure the selected mode has credentials configured.
- `v5`: set a valid API key.
- `v4`: set email + password.
- Invalid credentials block save and remain visible as an inline error until you edit the selected mode's credentials or URL.
- Temporary Reactive Resume downtime shows an inline warning, but other settings can still be saved.
- Save settings, then refresh resumes in the Reactive Resume section.
### No resumes appear in dropdown
+5
View File
@@ -111,11 +111,14 @@ Defaults and constraints:
- Configure a shared RxResume URL for cloud or self-hosted deployments
- Configure v4 email/password or v5 API key in the same section
- Invalid Reactive Resume credentials or other `4xx` config failures block the save and stay visible as an inline error
- Temporary Reactive Resume downtime shows an inline warning, but the save still succeeds
- Select a template/base resume
- Configure project selection behavior:
- Max projects
- Must-include projects
- AI-selectable projects
- JobOps briefly caches successful Reactive Resume resume data to reduce repeated API calls across settings, profile, and PDF flows
### Tracer Links
@@ -215,6 +218,8 @@ curl -X POST "http://localhost:3001/api/backups"
- JobOps resolves the RxResume URL in this order: the value saved in **Settings → Reactive Resume**, then the `RXRESUME_URL` environment variable (if set), and finally the public cloud default.
- Open **Settings → Reactive Resume** and configure the shared RxResume URL if you use a self-hosted instance.
- If you leave the URL blank, JobOps will fall back to `RXRESUME_URL` when it is configured; otherwise it uses the public cloud default.
- Invalid credentials block the save and remain visible inline until you edit the selected mode's credentials or URL.
- Temporary instance downtime shows a warning inline, but does not block unrelated settings updates.
- Then refresh available resumes from the Reactive Resume section.
### RxResume projects look empty in the RxResume UI