By Tsachi Shushan, Software Engineer @
A Node.js toolkit for building micro-services
@sage\config (properties)
[all]:
discoveryMode: true
logger:
sink: file
minLevel: INFO
recaptcha.enabled: false
trackjs.key: dummay
[dev]:
logger:
sink: stdout
[test]:
[simulator]:
[stg]:
trackjs.key: 123BjhWp6dHhlLAXk4AiGaKnoq4543
[prod]:
recaptcha.enabled: true
trackjs.key: ENC(lsQBjhWp6dHhlLAXk4AiGaKnoqfydn)import * as properties from '@sage/config';
...
function isRecaptchaEnabled() {
return properties.get('recaptcha.enabled');
}
@sage\lumberjack (logs)
import {LoggerFactory} from '@sage/utils';
const logger = LoggerFactory.getLogger('sesame.recaptcha.service');
...
if (success) {
logger.info(`token validation success`, parmas);
return resolve();
} else {
logger.error(`token validation failed`, err, params);
return reject();
}
{
"facility":"sesame.recaptcha.service",
"level":104,
"severity":"INFO",
"message":"token validation success",
"obmessage":"token validation success",
"obowner":"appservices",
"obtags":["Sesame","prod"],
"obtimestamp":"2018-01-16 18:14:05.849"
}
LOG FILE:
@sage\discovery
import { serviceDiscoveryService } from '@sage/utils';
...
serviceDiscoveryService.fetchTarget('AmplifyTokenGenerator').then((target) => {
...
});
@sage\metrics
import * as metrics from '@sage/metrics';
...
constructor {
metrics.createCounter('token_issue',
'Counter for creation of tokens',
['token_type', 'status']);
}
...
issueToken(params: any) {
...
metrics.use('token_issue', {token_type: 'AMELIA', status: 'new'}).inc(1);
...
}
@sage\server
import {server as SageServer, lumberjack} from '@sage/toolkit';
import router from './route/routes';
const logger = lumberjack.LoggerFactory.getLogger('server.main');
class MyService extends SageServer {
constructor() {
super({
routes: router.getRoutes()
});
}
}
new MyService().start().then(() => {
logger.info(`*************** MyService Started ********************`);
});
Glu
Dyploma
Sage template
Typescript
Frontend Support?
my.outbrain.com/login
my.outbrain.com/amplify/...
my.outbrain.com/amelia/...
OBGateway
Security
Authentication
Routing
Amelia
AmplifyApp
Sesame
CHIDC2