refactor: rename rollbar token & minor cleanup (#1593)
This commit is contained in:
@@ -67,22 +67,16 @@ async function main() {
|
||||
const authEnv = useHotMemoize(module, () => createEnv('auth'));
|
||||
const identityEnv = useHotMemoize(module, () => createEnv('identity'));
|
||||
const proxyEnv = useHotMemoize(module, () => createEnv('proxy'));
|
||||
const rollbarEnv = useHotMemoize(module, () => createEnv('rollbar'));
|
||||
const sentryEnv = useHotMemoize(module, () => createEnv('sentry'));
|
||||
const techdocsEnv = useHotMemoize(module, () => createEnv('techdocs'));
|
||||
|
||||
const service = createServiceBuilder(module)
|
||||
.loadConfig(configReader)
|
||||
.addRouter('/catalog', await catalog(catalogEnv))
|
||||
.addRouter(
|
||||
'/rollbar',
|
||||
await rollbar(
|
||||
getRootLogger().child({ type: 'plugin', plugin: 'rollbar' }),
|
||||
),
|
||||
)
|
||||
.addRouter('/rollbar', await rollbar(rollbarEnv))
|
||||
.addRouter('/scaffolder', await scaffolder(scaffolderEnv))
|
||||
.addRouter(
|
||||
'/sentry',
|
||||
await sentry(getRootLogger().child({ type: 'plugin', plugin: 'sentry' })),
|
||||
)
|
||||
.addRouter('/sentry', await sentry(sentryEnv))
|
||||
.addRouter('/auth', await auth(authEnv))
|
||||
.addRouter('/identity', await identity(identityEnv))
|
||||
.addRouter('/techdocs', await techdocs(techdocsEnv))
|
||||
|
||||
@@ -15,8 +15,8 @@
|
||||
*/
|
||||
|
||||
import { createRouter } from '@backstage/plugin-rollbar-backend';
|
||||
import { Logger } from 'winston';
|
||||
import type { PluginEnvironment } from '../types';
|
||||
|
||||
export default async function createPlugin(logger: Logger) {
|
||||
export default async function createPlugin({ logger }: PluginEnvironment) {
|
||||
return await createRouter({ logger });
|
||||
}
|
||||
|
||||
@@ -15,8 +15,8 @@
|
||||
*/
|
||||
|
||||
import { createRouter } from '@backstage/plugin-sentry-backend';
|
||||
import { Logger } from 'winston';
|
||||
import type { PluginEnvironment } from '../types';
|
||||
|
||||
export default async function createPlugin(logger: Logger) {
|
||||
export default async function createPlugin({ logger }: PluginEnvironment) {
|
||||
return await createRouter(logger);
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ Simple plugin that proxies requests to the [Rollbar](https://rollbar.com) API.
|
||||
|
||||
## Setup
|
||||
|
||||
A `ROLLBAR_TOKEN` environment variable must be set to a read access account token.
|
||||
A `ROLLBAR_ACCOUNT_TOKEN` environment variable must be set to a read access account token.
|
||||
|
||||
## Links
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ export async function createRouter(
|
||||
): Promise<express.Router> {
|
||||
const router = Router();
|
||||
const logger = options.logger.child({ plugin: 'rollbar' });
|
||||
const accessToken = !options.rollbarApi ? getRollbarToken(logger) : '';
|
||||
const accessToken = !options.rollbarApi ? getRollbarAccountToken(logger) : '';
|
||||
|
||||
if (options.rollbarApi || accessToken) {
|
||||
const rollbarApi =
|
||||
@@ -38,63 +38,43 @@ export async function createRouter(
|
||||
|
||||
router.use(express.json());
|
||||
|
||||
const runAsync = createRunAsyncWrapper(logger);
|
||||
router.get('/projects', async (_req, res) => {
|
||||
const projects = await rollbarApi.getAllProjects();
|
||||
res.status(200).header('').send(projects);
|
||||
});
|
||||
|
||||
router.get(
|
||||
'/projects',
|
||||
runAsync(async (_req, res) => {
|
||||
const projects = await rollbarApi.getAllProjects();
|
||||
res.status(200).header('').send(projects);
|
||||
}),
|
||||
);
|
||||
router.get('/projects/:id', async (req, res) => {
|
||||
const { id } = req.params;
|
||||
const projects = await rollbarApi.getProject(id);
|
||||
res.status(200).send(projects);
|
||||
});
|
||||
|
||||
router.get(
|
||||
'/projects/:id',
|
||||
runAsync(async (req, res) => {
|
||||
const { id } = req.params;
|
||||
const projects = await rollbarApi.getProject(id);
|
||||
res.status(200).send(projects);
|
||||
}),
|
||||
);
|
||||
router.get('/projects/:id/items', async (req, res) => {
|
||||
const { id } = req.params;
|
||||
const projects = await rollbarApi.getProjectItems(id);
|
||||
res.status(200).send(projects);
|
||||
});
|
||||
|
||||
router.get(
|
||||
'/projects/:id/items',
|
||||
runAsync(async (req, res) => {
|
||||
const { id } = req.params;
|
||||
const projects = await rollbarApi.getProjectItems(id);
|
||||
res.status(200).send(projects);
|
||||
}),
|
||||
);
|
||||
router.get('/projects/:id/top_active_items', async (req, res) => {
|
||||
const { id } = req.params;
|
||||
const query = req.query;
|
||||
const items = await rollbarApi.getTopActiveItems(id, query as any);
|
||||
res.status(200).send(items);
|
||||
});
|
||||
|
||||
router.get(
|
||||
'/projects/:id/top_active_items',
|
||||
runAsync(async (req, res) => {
|
||||
const { id } = req.params;
|
||||
const query = req.query;
|
||||
const items = await rollbarApi.getTopActiveItems(id, query as any);
|
||||
res.status(200).send(items);
|
||||
}),
|
||||
);
|
||||
router.get('/projects/:id/occurance_counts', async (req, res) => {
|
||||
const { id } = req.params;
|
||||
const query = req.query;
|
||||
const items = await rollbarApi.getOccuranceCounts(id, query as any);
|
||||
res.status(200).send(items);
|
||||
});
|
||||
|
||||
router.get(
|
||||
'/projects/:id/occurance_counts',
|
||||
runAsync(async (req, res) => {
|
||||
const { id } = req.params;
|
||||
const query = req.query;
|
||||
const items = await rollbarApi.getOccuranceCounts(id, query as any);
|
||||
res.status(200).send(items);
|
||||
}),
|
||||
);
|
||||
|
||||
router.get(
|
||||
'/projects/:id/activated_item_counts',
|
||||
runAsync(async (req, res) => {
|
||||
const { id } = req.params;
|
||||
const query = req.query;
|
||||
const items = await rollbarApi.getActivatedCounts(id, query as any);
|
||||
res.status(200).send(items);
|
||||
}),
|
||||
);
|
||||
router.get('/projects/:id/activated_item_counts', async (req, res) => {
|
||||
const { id } = req.params;
|
||||
const query = req.query;
|
||||
const items = await rollbarApi.getActivatedCounts(id, query as any);
|
||||
res.status(200).send(items);
|
||||
});
|
||||
}
|
||||
|
||||
router.use(errorHandler());
|
||||
@@ -102,32 +82,17 @@ export async function createRouter(
|
||||
return router;
|
||||
}
|
||||
|
||||
function createRunAsyncWrapper(logger: Logger) {
|
||||
return function runAsyncWrapper(callback: express.RequestHandler) {
|
||||
return function runAsync(
|
||||
req: express.Request,
|
||||
res: express.Response,
|
||||
next: express.NextFunction,
|
||||
) {
|
||||
return Promise.resolve(callback(req, res, next)).catch(error => {
|
||||
logger.error(error);
|
||||
next(error);
|
||||
});
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
function getRollbarToken(logger: Logger) {
|
||||
const token = process.env.ROLLBAR_TOKEN || '';
|
||||
function getRollbarAccountToken(logger: Logger) {
|
||||
const token = process.env.ROLLBAR_ACCOUNT_TOKEN || '';
|
||||
|
||||
if (!token) {
|
||||
if (process.env.NODE_ENV !== 'development') {
|
||||
throw new Error(
|
||||
'Rollbar token must be provided in ROLLBAR_TOKEN environment variable to start the API.',
|
||||
'Rollbar token must be provided in ROLLBAR_ACCOUNT_TOKEN environment variable to start the API.',
|
||||
);
|
||||
}
|
||||
logger.warn(
|
||||
'Failed to initialize rollbar backend, set ROLLBAR_TOKEN environment variable to start the API.',
|
||||
'Failed to initialize rollbar backend, set ROLLBAR_ACCOUNT_TOKEN environment variable to start the API.',
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user