Skip to content

Commit cacd0a1

Browse files
authored
Merge pull request #140 from bcgov/objId
Rename query and path parameter `objId` to `objectId`
2 parents c71a489 + ea74b39 commit cacd0a1

File tree

19 files changed

+192
-185
lines changed

19 files changed

+192
-185
lines changed

.github/environments/values.dev.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ config:
2323
# SERVER_LOGFILE: ~
2424
SERVER_LOGLEVEL: http
2525
SERVER_PORT: "3000"
26+
SERVER_PRIVACY_MASK: "true"
2627

2728
patroni:
2829
enabled: true

.github/environments/values.prod.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ config:
2323
# SERVER_LOGFILE: ~
2424
SERVER_LOGLEVEL: http
2525
SERVER_PORT: "3000"
26+
SERVER_PRIVACY_MASK: "true"
2627

2728
patroni:
2829
enabled: true

.github/environments/values.test.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ config:
2323
# SERVER_LOGFILE: ~
2424
SERVER_LOGLEVEL: http
2525
SERVER_PORT: "3000"
26+
SERVER_PRIVACY_MASK: "true"
2627

2728
patroni:
2829
enabled: true

app/src/controllers/object.js

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ const controller = {
9595
*/
9696
async addMetadata(req, res, next) {
9797
try {
98-
const objId = addDashesToUuid(req.params.objId);
98+
const objId = addDashesToUuid(req.params.objectId);
9999
const objPath = await getPath(objId);
100100
const userId = await userService.getCurrentUserId(getCurrentIdentity(req.currentUser, SYSTEM_USER));
101101

@@ -156,7 +156,7 @@ const controller = {
156156
*/
157157
async addTags(req, res, next) {
158158
try {
159-
const objId = addDashesToUuid(req.params.objId);
159+
const objId = addDashesToUuid(req.params.objectId);
160160
const objPath = await getPath(objId);
161161
const userId = await userService.getCurrentUserId(getCurrentIdentity(req.currentUser, SYSTEM_USER));
162162
const newTags = req.query.tagset;
@@ -304,7 +304,7 @@ const controller = {
304304
*/
305305
async deleteMetadata(req, res, next) {
306306
try {
307-
const objId = addDashesToUuid(req.params.objId);
307+
const objId = addDashesToUuid(req.params.objectId);
308308
const objPath = await getPath(objId);
309309
const userId = await userService.getCurrentUserId(getCurrentIdentity(req.currentUser, SYSTEM_USER));
310310

@@ -365,7 +365,7 @@ const controller = {
365365
*/
366366
async deleteObject(req, res, next) {
367367
try {
368-
const objId = addDashesToUuid(req.params.objId);
368+
const objId = addDashesToUuid(req.params.objectId);
369369
const userId = await userService.getCurrentUserId(getCurrentIdentity(req.currentUser, SYSTEM_USER));
370370

371371
// target S3 version to delete
@@ -425,7 +425,7 @@ const controller = {
425425
*/
426426
async deleteTags(req, res, next) {
427427
try {
428-
const objId = addDashesToUuid(req.params.objId);
428+
const objId = addDashesToUuid(req.params.objectId);
429429
const objPath = await getPath(objId);
430430
const userId = await userService.getCurrentUserId(getCurrentIdentity(req.currentUser, SYSTEM_USER));
431431

@@ -482,7 +482,7 @@ const controller = {
482482
*/
483483
async fetchMetadata(req, res, next) {
484484
try {
485-
const objIds = mixedQueryToArray(req.query.objId);
485+
const objIds = mixedQueryToArray(req.query.objectId);
486486
const metadata = getMetadata(req.headers);
487487
const params = {
488488
objId: objIds ? objIds.map(id => addDashesToUuid(id)) : objIds,
@@ -509,7 +509,7 @@ const controller = {
509509
*/
510510
async fetchTags(req, res, next) {
511511
try {
512-
const objIds = mixedQueryToArray(req.query.objId);
512+
const objIds = mixedQueryToArray(req.query.objectId);
513513
const tagset = req.query.tagset;
514514
const params = {
515515
objectIds: objIds ? objIds.map(id => addDashesToUuid(id)) : objIds,
@@ -536,7 +536,7 @@ const controller = {
536536
*/
537537
async headObject(req, res, next) {
538538
try {
539-
const objId = addDashesToUuid(req.params.objId);
539+
const objId = addDashesToUuid(req.params.objectId);
540540

541541
// target S3 version
542542
const targetS3VersionId = await getS3VersionId(req.query.s3VersionId, addDashesToUuid( req.query.versionId), objId);
@@ -573,7 +573,7 @@ const controller = {
573573
*/
574574
async listObjectVersion(req, res, next) {
575575
try {
576-
const objId = addDashesToUuid(req.params.objId);
576+
const objId = addDashesToUuid(req.params.objectId);
577577

578578
const response = await versionService.list(objId);
579579
// TODO: sync with current versions in S3
@@ -596,7 +596,7 @@ const controller = {
596596
*/
597597
async readObject(req, res, next) {
598598
try {
599-
const objId = addDashesToUuid(req.params.objId);
599+
const objId = addDashesToUuid(req.params.objectId);
600600

601601
// target S3 version
602602
const targetS3VersionId = await getS3VersionId(req.query.s3VersionId, addDashesToUuid( req.query.versionId), objId);
@@ -655,7 +655,7 @@ const controller = {
655655
*/
656656
async replaceMetadata(req, res, next) {
657657
try {
658-
const objId = addDashesToUuid(req.params.objId);
658+
const objId = addDashesToUuid(req.params.objectId);
659659
const objPath = await getPath(objId);
660660
const userId = await userService.getCurrentUserId(getCurrentIdentity(req.currentUser, SYSTEM_USER));
661661

@@ -707,7 +707,7 @@ const controller = {
707707
*/
708708
async replaceTags(req, res, next) {
709709
try {
710-
const objId = addDashesToUuid(req.params.objId);
710+
const objId = addDashesToUuid(req.params.objectId);
711711
const objPath = await getPath(objId);
712712
const userId = await userService.getCurrentUserId(getCurrentIdentity(req.currentUser, SYSTEM_USER));
713713
const newTags = req.query.tagset;
@@ -756,7 +756,7 @@ const controller = {
756756
// TODO: handle additional parameters. Eg: deleteMarker, latest
757757
try {
758758
const bucketIds = mixedQueryToArray(req.query.bucketId);
759-
const objIds = mixedQueryToArray(req.query.objId);
759+
const objIds = mixedQueryToArray(req.query.objectId);
760760
const metadata = getMetadata(req.headers);
761761
const tagging = req.query.tagset;
762762
const params = {
@@ -795,7 +795,7 @@ const controller = {
795795
try {
796796
const userId = await userService.getCurrentUserId(req.currentUser, SYSTEM_USER);
797797
const data = {
798-
id: addDashesToUuid(req.params.objId),
798+
id: addDashesToUuid(req.params.objectId),
799799
public: isTruthy(req.query.public),
800800
updatedBy: userId
801801
};
@@ -826,7 +826,7 @@ const controller = {
826826
const bucketKey = (await getBucket(req.query.bucketId, true)).key;
827827

828828
bb.on('file', (name, stream, info) => {
829-
const objId = addDashesToUuid(req.params.objId);
829+
const objId = addDashesToUuid(req.params.objectId);
830830
const data = {
831831
id: objId,
832832
fieldName: name,

app/src/controllers/objectPermission.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ const controller = {
2121
async searchPermissions(req, res, next) {
2222
try {
2323
const bucketIds = utils.mixedQueryToArray(req.query.bucketId);
24-
const objIds = utils.mixedQueryToArray(req.query.objId);
24+
const objIds = utils.mixedQueryToArray(req.query.objectId);
2525
const permCodes = utils.mixedQueryToArray(req.query.permCode);
2626
const userIds = utils.mixedQueryToArray(req.query.userId);
2727
const result = await objectPermissionService.searchPermissions({
@@ -62,7 +62,7 @@ const controller = {
6262
try {
6363
const userIds = utils.mixedQueryToArray(req.query.userId);
6464
const response = await objectPermissionService.searchPermissions({
65-
objId: utils.addDashesToUuid(req.params.objId),
65+
objId: utils.addDashesToUuid(req.params.objectId),
6666
userId: userIds ? userIds.map(id => utils.addDashesToUuid(id)) : userIds,
6767
permCode: utils.mixedQueryToArray(req.query.permCode)
6868
});
@@ -83,7 +83,7 @@ const controller = {
8383
async addPermissions(req, res, next) {
8484
try {
8585
const userId = await userService.getCurrentUserId(utils.getCurrentIdentity(req.currentUser, SYSTEM_USER));
86-
const response = await objectPermissionService.addPermissions(utils.addDashesToUuid(req.params.objId), req.body, userId);
86+
const response = await objectPermissionService.addPermissions(utils.addDashesToUuid(req.params.objectId), req.body, userId);
8787
res.status(201).json(response);
8888
} catch (e) {
8989
next(errorToProblem(SERVICE, e));
@@ -103,7 +103,7 @@ const controller = {
103103
const userArray = utils.mixedQueryToArray(req.query.userId);
104104
const userIds = userArray ? userArray.map(id => utils.addDashesToUuid(id)) : userArray;
105105
const permissions = utils.mixedQueryToArray(req.query.permCode);
106-
const response = await objectPermissionService.removePermissions(req.params.objId, userIds, permissions);
106+
const response = await objectPermissionService.removePermissions(req.params.objectId, userIds, permissions);
107107
res.status(200).json(response);
108108
} catch (e) {
109109
next(errorToProblem(SERVICE, e));

app/src/middleware/authorization.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ const _checkPermission = async ({ currentObject, currentUser, params }, permissi
2727
const permissions = [];
2828
const searchParams = { permCode: permission, userId: userId };
2929

30-
if (params.objId) {
30+
if (params.objectId) {
3131
permissions.push(...await objectPermissionService.searchPermissions({
32-
objId: params.objId, ...searchParams
32+
objId: params.objectId, ...searchParams
3333
}));
3434
}
3535
if (params.bucketId || currentObject.bucketId) {
@@ -86,11 +86,11 @@ const checkAppMode = (req, res, next) => {
8686
*/
8787
const currentObject = async (req, _res, next) => {
8888
try {
89-
if (req.params.objId) {
89+
if (req.params.objectId) {
9090
req.currentObject = Object.freeze({
91-
...await objectService.read(req.params.objId)
91+
...await objectService.read(req.params.objectId)
9292
// TODO: Determine if this is required or can be pushed down to controller level because this inflates all object related service call times by ~300ms
93-
//...await storageService.listObjectVersion({ filePath: await getPath(req.params.objId) })
93+
//...await storageService.listObjectVersion({ filePath: await getPath(req.params.objectId) })
9494
});
9595
}
9696
} catch (err) {
@@ -122,14 +122,14 @@ const hasPermission = (permission) => {
122122
try {
123123
if (!config.has('db.enabled') || !canOidcMode(authMode)) {
124124
log.debug('Current application mode does not enforce permission checks', { function: 'hasPermission' });
125-
} else if (!req.params.objId && !req.params.bucketId) {
125+
} else if (!req.params.objectId && !req.params.bucketId) {
126126
throw new Error('Missing request parameter(s)');
127-
} else if (req.params.objId && !req.currentObject) {
127+
} else if (req.params.objectId && !req.currentObject) {
128128
// Force 403 on unauthorized or not found; do not allow 404 id brute force discovery
129129
throw new Error('Missing object record');
130130
} else if (authType === AuthType.BASIC && canBasicMode(authMode)) {
131131
log.debug('Basic authTypes are always permitted', { function: 'hasPermission' });
132-
} else if (req.params.objId && req.currentObject.public && permission === Permissions.READ) {
132+
} else if (req.params.objectId && req.currentObject.public && permission === Permissions.READ) {
133133
log.debug('Read requests on public objects are always permitted', { function: 'hasPermission' });
134134
} else if (!await _checkPermission(req, permission)) {
135135
throw new Error(`User lacks required permission ${permission}`);

app/src/routes/v1/object.js

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -29,63 +29,63 @@ router.get('/tagging', objectValidator.fetchTags, requireSomeAuth, requireDb, (r
2929
});
3030

3131
/** Returns object headers */
32-
router.head('/:objId', objectValidator.headObject, currentObject, hasPermission(Permissions.READ), (req, res, next) => {
32+
router.head('/:objectId', objectValidator.headObject, currentObject, hasPermission(Permissions.READ), (req, res, next) => {
3333
objectController.headObject(req, res, next);
3434
});
3535

3636
/** Returns the object */
37-
router.get('/:objId', objectValidator.readObject, currentObject, hasPermission(Permissions.READ), (req, res, next) => {
37+
router.get('/:objectId', objectValidator.readObject, currentObject, hasPermission(Permissions.READ), (req, res, next) => {
3838
// TODO: Add validation to reject unexpected query parameters
3939
objectController.readObject(req, res, next);
4040
});
4141

4242
/** Updates an object */
43-
router.post('/:objId', objectValidator.updateObject, requireSomeAuth, currentObject, hasPermission(Permissions.UPDATE), (req, res, next) => {
43+
router.post('/:objectId', objectValidator.updateObject, requireSomeAuth, currentObject, hasPermission(Permissions.UPDATE), (req, res, next) => {
4444
objectController.updateObject(req, res, next);
4545
});
4646

4747
/** Deletes the object */
48-
router.delete('/:objId', objectValidator.deleteObject, requireSomeAuth, currentObject, hasPermission(Permissions.DELETE), (req, res, next) => {
48+
router.delete('/:objectId', objectValidator.deleteObject, requireSomeAuth, currentObject, hasPermission(Permissions.DELETE), (req, res, next) => {
4949
objectController.deleteObject(req, res, next);
5050
});
5151

5252
/** Returns the object version history */
53-
router.get('/:objId/version', objectValidator.listObjectVersion, requireSomeAuth, requireDb, currentObject, hasPermission(Permissions.READ), (req, res, next) => {
53+
router.get('/:objectId/version', objectValidator.listObjectVersion, requireSomeAuth, requireDb, currentObject, hasPermission(Permissions.READ), (req, res, next) => {
5454
objectController.listObjectVersion(req, res, next);
5555
});
5656

5757
/** Sets the public flag of an object */
58-
router.patch('/:objId/public', objectValidator.togglePublic, requireSomeAuth, requireDb, currentObject, hasPermission(Permissions.MANAGE), (req, res, next) => {
58+
router.patch('/:objectId/public', objectValidator.togglePublic, requireSomeAuth, requireDb, currentObject, hasPermission(Permissions.MANAGE), (req, res, next) => {
5959
objectController.togglePublic(req, res, next);
6060
});
6161

6262
/** Add metadata to an object */
63-
router.patch('/:objId/metadata', objectValidator.addMetadata, requireSomeAuth, currentObject, hasPermission(Permissions.UPDATE), (req, res, next) => {
63+
router.patch('/:objectId/metadata', objectValidator.addMetadata, requireSomeAuth, currentObject, hasPermission(Permissions.UPDATE), (req, res, next) => {
6464
objectController.addMetadata(req, res, next);
6565
});
6666

6767
/** Replace metadata on an object */
68-
router.put('/:objId/metadata', objectValidator.replaceMetadata, requireSomeAuth, currentObject, hasPermission(Permissions.UPDATE), (req, res, next) => {
68+
router.put('/:objectId/metadata', objectValidator.replaceMetadata, requireSomeAuth, currentObject, hasPermission(Permissions.UPDATE), (req, res, next) => {
6969
objectController.replaceMetadata(req, res, next);
7070
});
7171

7272
/** Deletes an objects metadata */
73-
router.delete('/:objId/metadata', objectValidator.deleteMetadata, requireSomeAuth, currentObject, hasPermission(Permissions.UPDATE), (req, res, next) => {
73+
router.delete('/:objectId/metadata', objectValidator.deleteMetadata, requireSomeAuth, currentObject, hasPermission(Permissions.UPDATE), (req, res, next) => {
7474
objectController.deleteMetadata(req, res, next);
7575
});
7676

7777
/** Add tags to an object */
78-
router.patch('/:objId/tagging', objectValidator.addTags, requireSomeAuth, currentObject, hasPermission(Permissions.UPDATE), (req, res, next) => {
78+
router.patch('/:objectId/tagging', objectValidator.addTags, requireSomeAuth, currentObject, hasPermission(Permissions.UPDATE), (req, res, next) => {
7979
objectController.addTags(req, res, next);
8080
});
8181

8282
/** Add tags to an object */
83-
router.put('/:objId/tagging', objectValidator.replaceTags, requireSomeAuth, currentObject, hasPermission(Permissions.UPDATE), (req, res, next) => {
83+
router.put('/:objectId/tagging', objectValidator.replaceTags, requireSomeAuth, currentObject, hasPermission(Permissions.UPDATE), (req, res, next) => {
8484
objectController.replaceTags(req, res, next);
8585
});
8686

8787
/** Add tags to an object */
88-
router.delete('/:objId/tagging', objectValidator.deleteTags, requireSomeAuth, currentObject, hasPermission(Permissions.UPDATE), (req, res, next) => {
88+
router.delete('/:objectId/tagging', objectValidator.deleteTags, requireSomeAuth, currentObject, hasPermission(Permissions.UPDATE), (req, res, next) => {
8989
objectController.deleteTags(req, res, next);
9090
});
9191

app/src/routes/v1/permission/objectPermission.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,17 @@ router.get('/', objectPermissionValidator.searchPermissions, (req, res, next) =>
1515
});
1616

1717
/** Returns the object permissions */
18-
router.get('/:objId', objectPermissionValidator.listPermissions, requireSomeAuth, currentObject, hasPermission(Permissions.MANAGE), (req, res, next) => {
18+
router.get('/:objectId', objectPermissionValidator.listPermissions, requireSomeAuth, currentObject, hasPermission(Permissions.MANAGE), (req, res, next) => {
1919
objectPermissionController.listPermissions(req, res, next);
2020
});
2121

2222
/** Grants object permissions to users */
23-
router.put('/:objId', objectPermissionValidator.addPermissions, requireSomeAuth, currentObject, hasPermission(Permissions.MANAGE), (req, res, next) => {
23+
router.put('/:objectId', objectPermissionValidator.addPermissions, requireSomeAuth, currentObject, hasPermission(Permissions.MANAGE), (req, res, next) => {
2424
objectPermissionController.addPermissions(req, res, next);
2525
});
2626

2727
/** Deletes object permissions for a user */
28-
router.delete('/:objId', objectPermissionValidator.removePermissions, requireSomeAuth, currentObject, hasPermission(Permissions.MANAGE), (req, res, next) => {
28+
router.delete('/:objectId', objectPermissionValidator.removePermissions, requireSomeAuth, currentObject, hasPermission(Permissions.MANAGE), (req, res, next) => {
2929
objectPermissionController.removePermissions(req, res, next);
3030
});
3131

app/src/validators/bucketPermission.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
12
const { validate, Joi } = require('express-validation');
23
const { scheme, type } = require('./common');
34
const { Permissions } = require('../components/constants');
@@ -16,7 +17,8 @@ const schema = {
1617
.messages({
1718
'string.guid': 'One userId required when `objectPerms=true`',
1819
}),
19-
otherwise: scheme.guid })
20+
otherwise: scheme.guid
21+
})
2022
})
2123
},
2224

0 commit comments

Comments
 (0)