This commit is contained in:
2026-06-25 20:57:09 -05:00
parent 552b86c323
commit e47d09d7d6
35 changed files with 4507 additions and 101 deletions

View File

@@ -11,10 +11,12 @@ import { graphRoutes } from './graphRoutes.js';
import { helpRoutes } from './helpRoutes.js';
import { hostRoutes } from './hostRoutes.js';
import { jobRoutes } from './jobRoutes.js';
import { jobOutputRoutes } from './jobOutputRoutes.js';
import { logRoutes } from './logRoutes.js';
import { packagingRoutes } from './packagingRoutes.js';
import { psadtRoutes } from './psadtRoutes.js';
import { runPlanRoutes } from './runPlanRoutes.js';
import { runPlanScheduleRoutes } from './runPlanScheduleRoutes.js';
import { settingsRoutes } from './settingsRoutes.js';
import { systemJobRoutes } from './systemJobRoutes.js';
import { userRoutes } from './userRoutes.js';
@@ -41,6 +43,8 @@ apiRoutes.use('/packaging', packagingRoutes);
apiRoutes.use('/intune/applications', applicationRoutes);
apiRoutes.use('/intune', governanceRoutes);
apiRoutes.use('/runplans', runPlanRoutes);
apiRoutes.use('/schedules', runPlanScheduleRoutes);
apiRoutes.use('/jobs', jobRoutes);
apiRoutes.use('/job-output', jobOutputRoutes);
apiRoutes.use('/system-jobs', systemJobRoutes);
apiRoutes.use('/logs', logRoutes);

View File

@@ -0,0 +1,13 @@
import { Router } from 'express';
import { byJob, content, download, generate, index, view } from '../controllers/jobOutputController.js';
import { requireAuth } from '../middleware/auth.js';
export const jobOutputRoutes = Router();
// Job Output artifacts are generated by the backend and stored in FileLocker.
jobOutputRoutes.get('/', requireAuth, index);
jobOutputRoutes.get('/jobs/:jobId', requireAuth, byJob);
jobOutputRoutes.post('/jobs/:jobId/generate', requireAuth, generate);
jobOutputRoutes.get('/:id/content', requireAuth, content);
jobOutputRoutes.get('/:id/view', requireAuth, view);
jobOutputRoutes.get('/:id/download', requireAuth, download);

View File

@@ -0,0 +1,15 @@
import { Router } from 'express';
import { create, destroy, index, preview, runNow, toggle, update } from '../controllers/runPlanScheduleController.js';
import { requireAuth } from '../middleware/auth.js';
export const runPlanScheduleRoutes = Router();
// API-first RunPlan automation. The browser only defines schedules; the API
// owns recurrence evaluation, dispatch, history, and execution.
runPlanScheduleRoutes.get('/', requireAuth, index);
runPlanScheduleRoutes.post('/', requireAuth, create);
runPlanScheduleRoutes.post('/preview', requireAuth, preview);
runPlanScheduleRoutes.put('/:id', requireAuth, update);
runPlanScheduleRoutes.delete('/:id', requireAuth, destroy);
runPlanScheduleRoutes.post('/:id/toggle', requireAuth, toggle);
runPlanScheduleRoutes.post('/:id/run-now', requireAuth, runNow);