release: v1.32.0 - Subtype Drivers Engine, Explicit Secret Inheritance & App Tokens consolidation

This commit is contained in:
2026-08-08 15:38:35 -04:00
parent 5b1302bc6f
commit a442dc9921
37 changed files with 1543 additions and 191 deletions
+86
View File
@@ -0,0 +1,86 @@
'use strict';
jest.mock('@simpleworkjs/bao-conf', () => ({
get: jest.fn(),
set: jest.fn(),
request: jest.fn(async () => ({ ok: true, status: 200, json: async () => ({}) })),
}), { virtual: true });
const DriverRegistry = require('../services/driver_registry');
describe('Subtype Driver Registry Engine', () => {
test('resolves ProxmoxDriver for proxmox/hypervisor host subtype', async () => {
const resource = {
id: 'res-proxmox-1',
name: 'pve0',
kind: 'host',
metadata: { subType: 'proxmox' }
};
const driver = await DriverRegistry.resolveDriver(resource);
expect(driver.name).toBe('proxmox');
});
test('resolves DockerSocketDriver for docker/docker_compose subtype', async () => {
const resource = {
id: 'res-docker-1',
name: 'theta-suite-docker',
kind: 'service',
metadata: { subType: 'docker' }
};
const driver = await DriverRegistry.resolveDriver(resource);
expect(driver.name).toBe('docker_socket');
});
test('resolves DbDriver for redis, postgresql, openbao_vault subtypes', async () => {
const redisRes = { id: 'r1', metadata: { subType: 'redis' } };
const pgRes = { id: 'r2', metadata: { subType: 'postgresql' } };
const vaultRes = { id: 'r3', metadata: { subType: 'openbao_vault' } };
expect((await DriverRegistry.resolveDriver(redisRes)).name).toBe('database');
expect((await DriverRegistry.resolveDriver(pgRes)).name).toBe('database');
expect((await DriverRegistry.resolveDriver(vaultRes)).name).toBe('database');
});
test('resolves NetworkDriver for wireguard, unifi_ap, pfsense', async () => {
const wgRes = { id: 'nw1', metadata: { subType: 'wireguard' } };
const unifiRes = { id: 'nw2', metadata: { subType: 'unifi_ap' } };
const pfRes = { id: 'nw3', metadata: { subType: 'pfsense' } };
expect((await DriverRegistry.resolveDriver(wgRes)).name).toBe('network');
expect((await DriverRegistry.resolveDriver(unifiRes)).name).toBe('network');
expect((await DriverRegistry.resolveDriver(pfRes)).name).toBe('network');
});
test('resolves K8sDriver for k8s_pod and k8s_deployment', async () => {
const podRes = { id: 'k1', metadata: { subType: 'k8s_pod' } };
const depRes = { id: 'k2', metadata: { subType: 'k8s_deployment' } };
expect((await DriverRegistry.resolveDriver(podRes)).name).toBe('kubernetes');
expect((await DriverRegistry.resolveDriver(depRes)).name).toBe('kubernetes');
});
test('returns unmanaged driver for unknown subtypes without agent', async () => {
const unknownRes = { id: 'u1', metadata: { subType: 'unknown_custom' } };
const driver = await DriverRegistry.resolveDriver(unknownRes);
expect(driver.name).toBe('unmanaged');
});
test('fetches metrics via resolved driver', async () => {
const redisRes = { id: 'r1', metadata: { subType: 'redis' } };
const metrics = await DriverRegistry.getMetrics(redisRes);
expect(metrics.status).toBe('online');
expect(metrics.driver).toBe('database');
expect(metrics.redis).toBeDefined();
expect(metrics.redis.connectedClients).toBeGreaterThan(0);
});
test('executes actions via resolved driver', async () => {
const dockerRes = { id: 'd1', slug: 'my-container', metadata: { subType: 'docker' } };
const result = await DriverRegistry.execAction(dockerRes, 'restart');
expect(result.status).toBe('ok');
expect(result.driver).toBe('docker_socket');
expect(result.action).toBe('restart');
});
});