refactor: rename rollbar token & minor cleanup (#1593)

This commit is contained in:
Andrew Thauer
2020-07-13 15:19:22 -04:00
committed by GitHub
parent fe049a18de
commit d4d54ee7e3
5 changed files with 46 additions and 87 deletions
+4 -10
View File
@@ -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))
+2 -2
View File
@@ -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 });
}
+2 -2
View File
@@ -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);
}
+1 -1
View File
@@ -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
+37 -72
View File
@@ -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.',
);
}