merge dc/mount (network router mounts) into p7-wave1

This commit is contained in:
Hermes committed 2026-10-03 22:08:44 -07:00
commit 2f14936970
1 file changed
+81
+81
View File
@@ -81,6 +81,14 @@ const containerRoutes = require('../routes/containers');
const serviceRoutes = require('../routes/services');
const tailscaleRoutes = require('../routes/tailscale');
const tailscaleAdminRoutes = require('../routes/tailscale-admin');
const networkPeopleRoutes = require('../routes/network-people');
const networkAccessRoutes = require('../routes/network-access');
const networkInvitesRoutes = require('../routes/network-invites');
const networkLifecycleRoutes = require('../routes/network-lifecycle');
const networkGroupsRoutes = require('../routes/network-groups');
const networkResourcesRoutes = require('../routes/network-resources');
const networkWizardRoutes = require('../routes/network-wizard');
const sitesRoutes = require('../routes/sites');
const credentialsRoutes = require('../routes/credentials');
const arrRoutes = require('../routes/arr');
@@ -702,6 +710,79 @@ async function createApp() {
log: ctx.log,
logError: ctx.logError,
}));
// ── P7 Private Network mounts (DC-140..DC-152) ──────────────────────────
// Shared stores; providers self-register via src/network/index.js when the
// registry is required (tailscale + wireguard).
require('./network/index');
const { getActiveProvider } = require('./network/registry');
const p7PeopleStore = require('./security/network-people-store').createPeopleStore({ log: ctx.log });
const p7AccessStore = require('./security/network-access-store').createNetworkAccessStore({ log: ctx.log });
const p7ResourcesStore = require('./security/network-resources').createResourcesStore({ log: ctx.log });
const p7GroupsService = require('./security/network-groups').createGroupsService({
peopleStore: p7PeopleStore, accessStore: p7AccessStore, log: ctx.log,
});
const p7LifecycleModule = require('./network/lifecycle');
const p7LifecycleProxy = {
blockPerson: async (id) => p7GetLifecycle().blockPerson(id),
unblockPerson: async (id) => p7GetLifecycle().unblockPerson(id),
removePerson: async (id) => p7GetLifecycle().removePerson(id),
revokeDevice: async (pid, did) => p7GetLifecycle().revokeDevice(pid, did),
};
let p7LifecycleInstance = null;
function p7GetLifecycle() {
if (!p7LifecycleInstance) {
p7LifecycleInstance = p7LifecycleModule.createNetworkLifecycle({
provider: getActiveProvider(),
peopleStore: p7PeopleStore,
accessStore: p7AccessStore,
logger: ctx.log,
});
}
return p7LifecycleInstance;
}
apiRouter.use('/network/people', networkPeopleRoutes({
peopleStore: p7PeopleStore,
networkRegistry: { getActiveProvider },
asyncHandler: ctx.asyncHandler,
log: ctx.log,
}));
apiRouter.use('/network/access', networkAccessRoutes({
accessStore: p7AccessStore,
asyncHandler: ctx.asyncHandler,
log: ctx.log,
}));
apiRouter.use('/network/invites', networkInvitesRoutes({
networkRegistry: { getActiveProvider },
asyncHandler: ctx.asyncHandler,
log: ctx.log,
}));
apiRouter.use('/network', networkLifecycleRoutes({
lifecycle: p7LifecycleProxy,
asyncHandler: ctx.asyncHandler,
log: ctx.log,
}));
apiRouter.use('/network/groups', networkGroupsRoutes({
groupsService: p7GroupsService,
peopleStore: p7PeopleStore,
accessStore: p7AccessStore,
asyncHandler: ctx.asyncHandler,
log: ctx.log,
}));
apiRouter.use('/network/resources', networkResourcesRoutes({
resourcesStore: p7ResourcesStore,
asyncHandler: ctx.asyncHandler,
log: ctx.log,
}));
apiRouter.use('/network/wizard', networkWizardRoutes({
registry: { getActiveProvider },
peopleStore: p7PeopleStore,
accessStore: p7AccessStore,
asyncHandler: ctx.asyncHandler,
log: ctx.log,
}));
// ── end P7 mounts ───────────────────────────────────────────────────────
apiRouter.use(sitesRoutes({
asyncHandler: ctx.asyncHandler,
ok: ctx.ok,