diff --git a/package.json b/package.json
index 32a66bc..d2c7ed4 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "ipwhitelist",
- "version": "0.5.148",
+ "version": "0.5.147",
"description": "IP WhiteList microservice for cloud provider",
"main": "server.js",
"scripts": {
diff --git a/v2/server.js b/v2/server.js
index 48e38af..6d25198 100644
--- a/v2/server.js
+++ b/v2/server.js
@@ -90,6 +90,31 @@ function createV2Router() {
}
});
+ // ── GET /v2/impersonation-check — IAM impersonation: все GET эндпоинты ─
+ router.get('/impersonation-check', async (req, res) => {
+ const token = req.session && req.session.token;
+ if (!token) return res.send('
Нет токена
Войти
');
+
+ const endpoints = [
+ { name: 'status', url: 'https://auth-api.ngcloud.ru/api/v1/impersonation/status' },
+ { name: 'history', url: 'https://auth-api.ngcloud.ru/api/v1/impersonation/history' },
+ { name: 'history/all', url: 'https://auth-api.ngcloud.ru/api/v1/impersonation/history/all' },
+ ];
+
+ const results = {};
+ for (const ep of endpoints) {
+ try {
+ const data = await iamFetch(token, ep.url);
+ results[ep.name] = { ok: true, data };
+ } catch (e) {
+ results[ep.name] = { ok: false, error: e.message };
+ }
+ }
+
+ res.set('Content-Type', 'text/html; charset=utf-8');
+ res.send(iamStatPage(results));
+ });
+
// ── /v2/app — пользовательский CRUD (только с сессией) ──────────────
router.use('/app', enhanceImpersonation, resolveContext, createUserRouter());
@@ -162,4 +187,63 @@ function debugPage(u, version) {