Fix: Update INTERNAL_API_URL to match compose service name, and fix KNOWN_SITES filtering for all agents

This commit is contained in:
ypratama committed 2026-09-02 11:50:09 +07:00
1 parent 68c176f972
commit b34ea00bcd
4 files changed
+45 -68

No files matched your search

+29 -5
View File
@@ -37,8 +37,16 @@ router.get('/agents/uptime', async (req, res) => {
if (isGlobalUser && requestedSiteUuid && requestedSiteUuid !== 'all' && isKnownSite(requestedSiteUuid)) {
query.site_uuid = { $in: [requestedSiteUuid, 'global'] };
} else if (!isGlobalUser && req.user?.site_uuid) {
query.site_uuid = { $in: [req.user.site_uuid, 'global'] };
} else if (isGlobalUser && process.env.BACKONE_SITE_UUIDS) {
const envSites = process.env.BACKONE_SITE_UUIDS.split(',').map(s => s.trim()).filter(Boolean);
if (envSites.length > 0) query.site_uuid = { $in: [...envSites, 'global'] };
} else if (!isGlobalUser) {
const envSites = (process.env.BACKONE_SITE_UUIDS || '').split(',').map(s => s.trim()).filter(Boolean);
if (envSites.length > 0) {
query.site_uuid = { $in: [...envSites, req.user?.site_uuid, 'global'].filter(Boolean) };
} else if (req.user?.site_uuid) {
query.site_uuid = { $in: [req.user.site_uuid, 'global'] };
}
}
const stats = await Summary.aggregate([
@@ -82,8 +90,16 @@ router.get('/agents', async (req, res) => {
if (isGlobalUser && requestedSiteUuid && requestedSiteUuid !== 'all' && isKnownSite(requestedSiteUuid)) {
query.site_uuid = { $in: [requestedSiteUuid, 'global'] };
} else if (isGlobalUser && process.env.BACKONE_SITE_UUIDS) {
const envSites = process.env.BACKONE_SITE_UUIDS.split(',').map(s => s.trim()).filter(Boolean);
if (envSites.length > 0) query.site_uuid = { $in: [...envSites, 'global'] };
} else if (effectiveRole === 'TENANT_ADMIN') {
query.site_uuid = { $in: [req.user.site_uuid, 'global'] };
const envSites = (process.env.BACKONE_SITE_UUIDS || '').split(',').map(s => s.trim()).filter(Boolean);
if (envSites.length > 0) {
query.site_uuid = { $in: [...envSites, req.user.site_uuid, 'global'].filter(Boolean) };
} else {
query.site_uuid = { $in: [req.user.site_uuid, 'global'] };
}
}
const agents = await Summary.distinct('agent_uuid', query);
@@ -183,8 +199,16 @@ router.get('/agents/list', async (req, res) => {
if (isGlobalUser && requestedSiteUuid && requestedSiteUuid !== 'all' && isKnownSite(requestedSiteUuid)) {
filter.site_uuid = { $in: [requestedSiteUuid, 'global'] };
} else if (user?.site_uuid) {
filter.site_uuid = { $in: [user.site_uuid, 'global'] };
} else if (isGlobalUser && process.env.BACKONE_SITE_UUIDS) {
const envSites = process.env.BACKONE_SITE_UUIDS.split(',').map(s => s.trim()).filter(Boolean);
if (envSites.length > 0) filter.site_uuid = { $in: [...envSites, 'global'] };
} else if (!isGlobalUser) {
const envSites = (process.env.BACKONE_SITE_UUIDS || '').split(',').map(s => s.trim()).filter(Boolean);
if (envSites.length > 0) {
filter.site_uuid = { $in: [...envSites, user?.site_uuid, 'global'].filter(Boolean) };
} else if (user?.site_uuid) {
filter.site_uuid = { $in: [user.site_uuid, 'global'] };
}
}
}
+14 -2
View File
@@ -55,8 +55,18 @@ function getBaseFilter(req, timeFilter = null) {
if (isGlobalUser && requestedSiteUuid && requestedSiteUuid !== 'all' && isKnownSite(requestedSiteUuid)) {
filter.site_uuid = { $in: [requestedSiteUuid, 'global'] };
} else if (!isGlobalUser && req.user?.site_uuid) {
filter.site_uuid = { $in: [req.user.site_uuid, 'global'] };
} else if (isGlobalUser && KNOWN_SITES.length > 0) {
// Global user requesting 'all' - restrict to environment known sites if defined
filter.site_uuid = { $in: [...KNOWN_SITES, 'global'] };
} else if (!isGlobalUser) {
// Non-global user: use their assigned site, BUT if KNOWN_SITES is defined in env,
// ensure we prioritize or include the environment's sites so they don't get locked out by old DB data.
const userSite = req.user?.site_uuid;
if (KNOWN_SITES.length > 0) {
filter.site_uuid = { $in: [...KNOWN_SITES, userSite, 'global'].filter(Boolean) };
} else if (userSite) {
filter.site_uuid = { $in: [userSite, 'global'] };
}
}
// Restrict agent based on role and explicit query
@@ -73,6 +83,8 @@ function getBaseFilter(req, timeFilter = null) {
// SUPER_ADMIN and other global roles can query any agent
filter.agent_uuid = req.query.agent_uuid;
}
console.log('[DEBUG getBaseFilter]', { headers: req.headers, filter });
return filter;
}