Skip to content

Commit

Permalink
fix: add more info logs for account/app management
Browse files Browse the repository at this point in the history
  • Loading branch information
rocwind committed Feb 8, 2022
1 parent deefe90 commit 4e45c7e
Show file tree
Hide file tree
Showing 6 changed files with 85 additions and 41 deletions.
48 changes: 22 additions & 26 deletions app.js
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var helmet = require('helmet');
var config = require('./core/config');
var _ = require('lodash');
var fs = require('fs');
var { logger } = require('kv-logger');
const express = require('express');
const path = require('path');
const cookieParser = require('cookie-parser');
const bodyParser = require('body-parser');
const helmet = require('helmet');
const _ = require('lodash');
const fs = require('fs');
const { logger } = require('kv-logger');

var routes = require('./routes/index');
var indexV1 = require('./routes/indexV1');
var auth = require('./routes/auth');
var accessKeys = require('./routes/accessKeys');
var account = require('./routes/account');
var users = require('./routes/users');
var apps = require('./routes/apps');
var AppError = require('./core/app-error');
const config = require('./core/config');
const routes = require('./routes/index');
const indexV1 = require('./routes/indexV1');
const auth = require('./routes/auth');
const accessKeys = require('./routes/accessKeys');
const account = require('./routes/account');
const users = require('./routes/users');
const apps = require('./routes/apps');
const { AppError, NotFound } = require('./core/app-error');

var app = express();
const app = express();

app.use(
helmet({
Expand All @@ -33,20 +33,16 @@ app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

//use nginx in production
//if (app.get('env') === 'development') {
logger.debug('set Access-Control Header');
logger.debug('use set Access-Control Header');
app.all('*', function (req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
res.header(
'Access-Control-Allow-Headers',
'Origin, X-Requested-With, Content-Type, Accept, Authorization, X-CodePush-Plugin-Version, X-CodePush-Plugin-Name, X-CodePush-SDK-Version',
);
res.header('Access-Control-Allow-Methods', 'PUT,POST,GET,PATCH,DELETE,OPTIONS');
logger.debug('use set Access-Control Header');
next();
});
//}

logger.debug('config common.storageType value: ' + _.get(config, 'common.storageType'));

Expand Down Expand Up @@ -87,7 +83,7 @@ app.use('/apps', apps);
// will print stacktrace
if (app.get('env') === 'development') {
app.use(function (req, res, next) {
var err = new AppError.NotFound(`${req.method} ${req.url}`);
var err = new NotFound(`${req.method} ${req.url}`);
res.status(err.status || 404);
res.render('error', {
message: err.message,
Expand All @@ -105,14 +101,14 @@ if (app.get('env') === 'development') {
});
} else {
app.use(function (req, res, next) {
var e = new AppError.NotFound();
var e = new NotFound();
res.status(404).send(e.message);
logger.debug(e);
});
// production error handler
// no stacktraces leaked to user
app.use(function (err, req, res, next) {
if (err instanceof AppError.AppError) {
if (err instanceof AppError) {
res.send(err.message);
logger.debug(err);
} else {
Expand Down
1 change: 0 additions & 1 deletion core/services/account-manager.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ proto.collaboratorCan = function (uid, appName) {
logger.debug(`collaboratorCan App ${appName} not exists.`);
throw new AppError.AppError(`App ${appName} not exists.`);
}
logger.debug('collaboratorCan yes');
return data;
});
};
Expand Down
14 changes: 12 additions & 2 deletions routes/accessKeys.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,10 @@ router.post('/', middleware.checkToken, (req, res, next) => {
var friendlyName = _.trim(req.body.friendlyName);
var ttl = parseInt(req.body.ttl);
var description = _.trim(req.body.description);
logger.debug(req.body);
logger.info('try to generate access key', {
uid,
...req.body,
});
var newAccessKey = security.randToken(28).concat(identical);
return accountManager
.isExsitAccessKeyName(uid, friendlyName)
Expand Down Expand Up @@ -58,7 +61,14 @@ router.post('/', middleware.checkToken, (req, res, next) => {
description: newToken.description,
friendlyName: newToken.name,
};
logger.debug(info);
logger.info('access key created', {
uid,
friendlyName: newToken.name,
});
logger.debug('access key', {
uid,
...info,
});
res.send({ accessKey: info });
})
.catch((e) => {
Expand Down
2 changes: 1 addition & 1 deletion routes/account.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ router.get('/', middleware.checkToken, (req, res) => {
linkedProviders: [],
name: req.users.username,
};
logger.debug(userInfo);
logger.info('check account info', userInfo);
res.send({ account: userInfo });
});

Expand Down
32 changes: 30 additions & 2 deletions routes/apps.js
Original file line number Diff line number Diff line change
Expand Up @@ -665,13 +665,23 @@ router.delete('/:appName/collaborators/:email', middleware.checkToken, (req, res
router.delete('/:appName', middleware.checkToken, (req, res, next) => {
var appName = _.trim(req.params.appName);
var uid = req.users.id;
logger.info('try remove app', {
uid,
appName,
});

var appManager = new AppManager();
accountManager
.ownerCan(uid, appName)
.then((col) => {
return appManager.deleteApp(col.appid);
})
.then((data) => {
logger.info('remove app success', {
uid,
appName,
});

res.send(data);
})
.catch((e) => {
Expand All @@ -687,6 +697,11 @@ router.patch('/:appName', middleware.checkToken, (req, res, next) => {
var newAppName = _.trim(req.body.name);
var appName = _.trim(req.params.appName);
var uid = req.users.id;
logger.info('try rename app', {
uid,
appName,
newAppName,
});
if (_.isEmpty(newAppName)) {
return res.status(406).send('Please input name!');
} else {
Expand All @@ -702,6 +717,12 @@ router.patch('/:appName', middleware.checkToken, (req, res, next) => {
});
})
.then(() => {
logger.info('rename app success', {
uid,
appName,
newAppName,
});

res.send('');
})
.catch((e) => {
Expand Down Expand Up @@ -745,7 +766,11 @@ router.post('/:appName/transfer/:email', middleware.checkToken, (req, res, next)
});

router.post('/', middleware.checkToken, (req, res, next) => {
logger.debug('addApp params:', req.body);
var uid = req.users.id;
logger.info('try add app', {
uid,
...req.body,
});
var constName = require('../core/const');
var appName = req.body.name;
if (_.isEmpty(appName)) {
Expand All @@ -772,7 +797,6 @@ router.post('/', middleware.checkToken, (req, res, next) => {
return res.status(406).send('Please input platform [React-Native|Cordova]!');
}
var manuallyProvisionDeployments = req.body.manuallyProvisionDeployments;
var uid = req.users.id;
var appManager = new AppManager();

appManager
Expand All @@ -789,6 +813,10 @@ router.post('/', middleware.checkToken, (req, res, next) => {
});
})
.then((data) => {
logger.info('add app success', {
uid,
name: appName,
});
res.send({ app: data });
})
.catch((e) => {
Expand Down
29 changes: 20 additions & 9 deletions routes/auth.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
var express = require('express');
var router = express.Router();
var _ = require('lodash');
var config = require('../core/config');
var validator = require('validator');
var { logger } = require('kv-logger');
const express = require('express');
const _ = require('lodash');
const validator = require('validator');
const { logger } = require('kv-logger');
const jwt = require('jsonwebtoken');

const config = require('../core/config');

const router = express.Router();

router.get('/password', (req, res) => {
res.render('auth/password', { title: 'CodePushServer' });
Expand Down Expand Up @@ -54,18 +57,26 @@ router.post('/login', (req, res, next) => {
var account = _.trim(req.body.account);
var password = _.trim(req.body.password);
var tokenSecret = _.get(config, 'jwt.tokenSecret');
logger.debug(`login:${account}`);
logger.info('try login', {
account,
});
accountManager
.login(account, password)
.then((users) => {
var jwt = require('jsonwebtoken');
logger.info('login success', {
account,
uid: users.id,
});
return jwt.sign(
{ uid: users.id, hash: security.md5(users.ack_code), expiredIn: 7200 },
tokenSecret,
);
})
.then((token) => {
logger.debug(token);
logger.debug('login jwt token', {
account,
token,
});
res.send({ status: 'OK', results: { tokens: token } });
})
.catch((e) => {
Expand Down

0 comments on commit 4e45c7e

Please sign in to comment.