1
0
Fork 0
mirror of synced 2024-07-01 04:30:59 +12:00

leftovers

This commit is contained in:
shimon 2022-08-08 17:32:54 +03:00
parent 89f164bdd7
commit 62ef532801
6 changed files with 88 additions and 147 deletions

View file

@ -47,7 +47,7 @@ App::post('/v1/account')
->label('event', 'users.[userId].create') ->label('event', 'users.[userId].create')
->label('scope', 'public') ->label('scope', 'public')
->label('auth.type', 'emailPassword') ->label('auth.type', 'emailPassword')
->label('audits.resource', 'user/{payload.$id}') ->label('audits.resource', 'user/{response.$id}')
->label('sdk.auth', []) ->label('sdk.auth', [])
->label('sdk.namespace', 'account') ->label('sdk.namespace', 'account')
->label('sdk.method', 'create') ->label('sdk.method', 'create')
@ -354,7 +354,7 @@ App::get('/v1/account/sessions/oauth2/:provider/redirect')
->label('abuse-limit', 50) ->label('abuse-limit', 50)
->label('abuse-key', 'ip:{ip}') ->label('abuse-key', 'ip:{ip}')
->label('docs', false) ->label('docs', false)
->label('audits.resource', 'user/{payload.$id}') ->label('audits.resource', 'user/{response.$id}')
->param('provider', '', new WhiteList(\array_keys(Config::getParam('providers')), true), 'OAuth2 provider.') ->param('provider', '', new WhiteList(\array_keys(Config::getParam('providers')), true), 'OAuth2 provider.')
->param('code', '', new Text(2048), 'OAuth2 code.') ->param('code', '', new Text(2048), 'OAuth2 code.')
->param('state', '', new Text(2048), 'OAuth2 state params.', true) ->param('state', '', new Text(2048), 'OAuth2 state params.', true)
@ -586,7 +586,7 @@ App::post('/v1/account/sessions/magic-url')
->groups(['api', 'account']) ->groups(['api', 'account'])
->label('scope', 'public') ->label('scope', 'public')
->label('auth.type', 'magic-url') ->label('auth.type', 'magic-url')
->label('audits.resource', 'user/{payload.$id}') ->label('audits.resource', 'user/{response.$id}')
->label('sdk.auth', []) ->label('sdk.auth', [])
->label('sdk.namespace', 'account') ->label('sdk.namespace', 'account')
->label('sdk.method', 'createMagicURLSession') ->label('sdk.method', 'createMagicURLSession')
@ -710,7 +710,7 @@ App::put('/v1/account/sessions/magic-url')
->groups(['api', 'account']) ->groups(['api', 'account'])
->label('scope', 'public') ->label('scope', 'public')
->label('event', 'users.[userId].sessions.[sessionId].create') ->label('event', 'users.[userId].sessions.[sessionId].create')
->label('audits.resource', 'user/{payload.$id}') ->label('audits.resource', 'user/{response.$id}')
->label('sdk.auth', []) ->label('sdk.auth', [])
->label('sdk.namespace', 'account') ->label('sdk.namespace', 'account')
->label('sdk.method', 'updateMagicURLSession') ->label('sdk.method', 'updateMagicURLSession')
@ -822,7 +822,7 @@ App::post('/v1/account/sessions/phone')
->groups(['api', 'account']) ->groups(['api', 'account'])
->label('scope', 'public') ->label('scope', 'public')
->label('auth.type', 'phone') ->label('auth.type', 'phone')
->label('audits.resource', 'user/{payload.$id}') ->label('audits.resource', 'user/{response.$id}')
->label('sdk.auth', []) ->label('sdk.auth', [])
->label('sdk.namespace', 'account') ->label('sdk.namespace', 'account')
->label('sdk.method', 'createPhoneSession') ->label('sdk.method', 'createPhoneSession')
@ -935,7 +935,7 @@ App::put('/v1/account/sessions/phone')
->groups(['api', 'account']) ->groups(['api', 'account'])
->label('scope', 'public') ->label('scope', 'public')
->label('event', 'users.[userId].sessions.[sessionId].create') ->label('event', 'users.[userId].sessions.[sessionId].create')
->label('audits.resource', 'user/{payload.$id}') ->label('audits.resource', 'user/{response.$id}')
->label('sdk.auth', []) ->label('sdk.auth', [])
->label('sdk.namespace', 'account') ->label('sdk.namespace', 'account')
->label('sdk.method', 'updatePhoneSession') ->label('sdk.method', 'updatePhoneSession')
@ -1044,7 +1044,7 @@ App::post('/v1/account/sessions/anonymous')
->label('event', 'users.[userId].sessions.[sessionId].create') ->label('event', 'users.[userId].sessions.[sessionId].create')
->label('scope', 'public') ->label('scope', 'public')
->label('auth.type', 'anonymous') ->label('auth.type', 'anonymous')
->label('audits.resource', 'user/{payload.$id}') ->label('audits.resource', 'user/{response.$id}')
->label('sdk.auth', []) ->label('sdk.auth', [])
->label('sdk.namespace', 'account') ->label('sdk.namespace', 'account')
->label('sdk.method', 'createAnonymousSession') ->label('sdk.method', 'createAnonymousSession')
@ -1399,7 +1399,7 @@ App::patch('/v1/account/name')
->groups(['api', 'account']) ->groups(['api', 'account'])
->label('event', 'users.[userId].update.name') ->label('event', 'users.[userId].update.name')
->label('scope', 'account') ->label('scope', 'account')
->label('audits.resource', 'user/{payload.$id}') ->label('audits.resource', 'user/{response.$id}')
->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT]) ->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT])
->label('sdk.namespace', 'account') ->label('sdk.namespace', 'account')
->label('sdk.method', 'updateName') ->label('sdk.method', 'updateName')
@ -1430,7 +1430,7 @@ App::patch('/v1/account/password')
->groups(['api', 'account']) ->groups(['api', 'account'])
->label('event', 'users.[userId].update.password') ->label('event', 'users.[userId].update.password')
->label('scope', 'account') ->label('scope', 'account')
->label('audits.resource', 'user/{payload.$id}') ->label('audits.resource', 'user/{response.$id}')
->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT]) ->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT])
->label('sdk.namespace', 'account') ->label('sdk.namespace', 'account')
->label('sdk.method', 'updatePassword') ->label('sdk.method', 'updatePassword')
@ -1471,7 +1471,7 @@ App::patch('/v1/account/email')
->groups(['api', 'account']) ->groups(['api', 'account'])
->label('event', 'users.[userId].update.email') ->label('event', 'users.[userId].update.email')
->label('scope', 'account') ->label('scope', 'account')
->label('audits.resource', 'user/{payload.$id}') ->label('audits.resource', 'user/{response.$id}')
->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT]) ->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT])
->label('sdk.namespace', 'account') ->label('sdk.namespace', 'account')
->label('sdk.method', 'updateEmail') ->label('sdk.method', 'updateEmail')
@ -1522,7 +1522,7 @@ App::patch('/v1/account/phone')
->groups(['api', 'account']) ->groups(['api', 'account'])
->label('event', 'users.[userId].update.phone') ->label('event', 'users.[userId].update.phone')
->label('scope', 'account') ->label('scope', 'account')
->label('audits.resource', 'user/{payload.$id}') ->label('audits.resource', 'user/{response.$id}')
->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT]) ->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT])
->label('sdk.namespace', 'account') ->label('sdk.namespace', 'account')
->label('sdk.method', 'updatePhone') ->label('sdk.method', 'updatePhone')
@ -1570,7 +1570,7 @@ App::patch('/v1/account/prefs')
->groups(['api', 'account']) ->groups(['api', 'account'])
->label('event', 'users.[userId].update.prefs') ->label('event', 'users.[userId].update.prefs')
->label('scope', 'account') ->label('scope', 'account')
->label('audits.resource', 'user/{payload.$id}') ->label('audits.resource', 'user/{response.$id}')
->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT]) ->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT])
->label('sdk.namespace', 'account') ->label('sdk.namespace', 'account')
->label('sdk.method', 'updatePrefs') ->label('sdk.method', 'updatePrefs')
@ -1599,8 +1599,8 @@ App::patch('/v1/account/status')
->groups(['api', 'account']) ->groups(['api', 'account'])
->label('event', 'users.[userId].update.status') ->label('event', 'users.[userId].update.status')
->label('scope', 'account') ->label('scope', 'account')
->label('audits.resource', 'user/{payload.$id}') ->label('audits.resource', 'user/{response.$id}')
->label('audits.payload', '*') ->label('audits.payload', true)
->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT]) ->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT])
->label('sdk.namespace', 'account') ->label('sdk.namespace', 'account')
->label('sdk.method', 'updateStatus') ->label('sdk.method', 'updateStatus')
@ -1612,10 +1612,9 @@ App::patch('/v1/account/status')
->inject('response') ->inject('response')
->inject('user') ->inject('user')
->inject('dbForProject') ->inject('dbForProject')
->inject('audits')
->inject('events') ->inject('events')
->inject('usage') ->inject('usage')
->action(function (Request $request, Response $response, Document $user, Database $dbForProject, Audit $audits, Event $events, Stats $usage) { ->action(function (Request $request, Response $response, Document $user, Database $dbForProject, Event $events, Stats $usage) {
$user = $dbForProject->updateDocument('users', $user->getId(), $user->setAttribute('status', false)); $user = $dbForProject->updateDocument('users', $user->getId(), $user->setAttribute('status', false));
@ -1714,7 +1713,7 @@ App::patch('/v1/account/sessions/:sessionId')
->groups(['api', 'account']) ->groups(['api', 'account'])
->label('scope', 'account') ->label('scope', 'account')
->label('event', 'users.[userId].sessions.[sessionId].update') ->label('event', 'users.[userId].sessions.[sessionId].update')
->label('audits.resource', 'user/{payload.$id}') ->label('audits.resource', 'user/{response.$id}')
->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT]) ->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT])
->label('sdk.namespace', 'account') ->label('sdk.namespace', 'account')
->label('sdk.method', 'updateSession') ->label('sdk.method', 'updateSession')
@ -1867,7 +1866,7 @@ App::post('/v1/account/recovery')
->groups(['api', 'account']) ->groups(['api', 'account'])
->label('scope', 'public') ->label('scope', 'public')
->label('event', 'users.[userId].recovery.[tokenId].create') ->label('event', 'users.[userId].recovery.[tokenId].create')
->label('audits.resource', 'user/{payload.$id}') ->label('audits.resource', 'user/{response.$id}')
->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT]) ->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT])
->label('sdk.namespace', 'account') ->label('sdk.namespace', 'account')
->label('sdk.method', 'createRecovery') ->label('sdk.method', 'createRecovery')
@ -1970,7 +1969,7 @@ App::put('/v1/account/recovery')
->groups(['api', 'account']) ->groups(['api', 'account'])
->label('scope', 'public') ->label('scope', 'public')
->label('event', 'users.[userId].recovery.[tokenId].update') ->label('event', 'users.[userId].recovery.[tokenId].update')
->label('audits.resource', 'user/{payload.$id}') ->label('audits.resource', 'user/{response.$id}')
->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT]) ->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT])
->label('sdk.namespace', 'account') ->label('sdk.namespace', 'account')
->label('sdk.method', 'updateRecovery') ->label('sdk.method', 'updateRecovery')
@ -2038,7 +2037,7 @@ App::post('/v1/account/verification')
->groups(['api', 'account']) ->groups(['api', 'account'])
->label('scope', 'account') ->label('scope', 'account')
->label('event', 'users.[userId].verification.[tokenId].create') ->label('event', 'users.[userId].verification.[tokenId].create')
->label('audits.resource', 'user/{payload.$id}') ->label('audits.resource', 'user/{response.$id}')
->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT]) ->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT])
->label('sdk.namespace', 'account') ->label('sdk.namespace', 'account')
->label('sdk.method', 'createVerification') ->label('sdk.method', 'createVerification')
@ -2127,7 +2126,7 @@ App::put('/v1/account/verification')
->groups(['api', 'account']) ->groups(['api', 'account'])
->label('scope', 'public') ->label('scope', 'public')
->label('event', 'users.[userId].verification.[tokenId].update') ->label('event', 'users.[userId].verification.[tokenId].update')
->label('audits.resource', 'user/{payload.$id}') ->label('audits.resource', 'user/{response.$id}')
->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT]) ->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT])
->label('sdk.namespace', 'account') ->label('sdk.namespace', 'account')
->label('sdk.method', 'updateVerification') ->label('sdk.method', 'updateVerification')
@ -2187,7 +2186,7 @@ App::post('/v1/account/verification/phone')
->groups(['api', 'account']) ->groups(['api', 'account'])
->label('scope', 'account') ->label('scope', 'account')
->label('event', 'users.[userId].verification.[tokenId].create') ->label('event', 'users.[userId].verification.[tokenId].create')
->label('audits.resource', 'user/{payload.$id}') ->label('audits.resource', 'user/{response.$id}')
->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT]) ->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT])
->label('sdk.namespace', 'account') ->label('sdk.namespace', 'account')
->label('sdk.method', 'createPhoneVerification') ->label('sdk.method', 'createPhoneVerification')
@ -2272,7 +2271,7 @@ App::put('/v1/account/verification/phone')
->groups(['api', 'account']) ->groups(['api', 'account'])
->label('scope', 'public') ->label('scope', 'public')
->label('event', 'users.[userId].verification.[tokenId].update') ->label('event', 'users.[userId].verification.[tokenId].update')
->label('audits.resource', 'user/{payload.$id}') ->label('audits.resource', 'user/{response.$id}')
->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT]) ->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT])
->label('sdk.namespace', 'account') ->label('sdk.namespace', 'account')
->label('sdk.method', 'updatePhoneVerification') ->label('sdk.method', 'updatePhoneVerification')

View file

@ -151,8 +151,8 @@ App::post('/v1/databases')
->groups(['api', 'database']) ->groups(['api', 'database'])
->label('event', 'databases.[databaseId].create') ->label('event', 'databases.[databaseId].create')
->label('scope', 'databases.write') ->label('scope', 'databases.write')
->label('audits.resource', 'database/{payload.$id}') ->label('audits.resource', 'database/{response.$id}')
->label('audits.payload', '*') ->label('audits.payload', true)
->label('sdk.auth', [APP_AUTH_TYPE_KEY]) ->label('sdk.auth', [APP_AUTH_TYPE_KEY])
->label('sdk.namespace', 'databases') ->label('sdk.namespace', 'databases')
->label('sdk.method', 'create') ->label('sdk.method', 'create')
@ -377,8 +377,8 @@ App::put('/v1/databases/:databaseId')
->groups(['api', 'database']) ->groups(['api', 'database'])
->label('scope', 'databases.write') ->label('scope', 'databases.write')
->label('event', 'databases.[databaseId].update') ->label('event', 'databases.[databaseId].update')
->label('audits.resource', 'database/{payload.$id}') ->label('audits.resource', 'database/{response.$id}')
->label('audits.payload', '*') ->label('audits.payload', true)
->label('sdk.auth', [APP_AUTH_TYPE_KEY]) ->label('sdk.auth', [APP_AUTH_TYPE_KEY])
->label('sdk.namespace', 'databases') ->label('sdk.namespace', 'databases')
->label('sdk.method', 'update') ->label('sdk.method', 'update')
@ -421,6 +421,7 @@ App::delete('/v1/databases/:databaseId')
->groups(['api', 'database']) ->groups(['api', 'database'])
->label('scope', 'databases.write') ->label('scope', 'databases.write')
->label('event', 'databases.[databaseId].delete') ->label('event', 'databases.[databaseId].delete')
->label('audits.resource', 'database/{request.databaseId}')
->label('sdk.auth', [APP_AUTH_TYPE_KEY]) ->label('sdk.auth', [APP_AUTH_TYPE_KEY])
->label('sdk.namespace', 'databases') ->label('sdk.namespace', 'databases')
->label('sdk.method', 'delete') ->label('sdk.method', 'delete')
@ -458,10 +459,7 @@ App::delete('/v1/databases/:databaseId')
->setPayload($response->output($database, Response::MODEL_DATABASE)) ->setPayload($response->output($database, Response::MODEL_DATABASE))
; ;
$audits $audits->setPayload($database->getArrayCopy());
->setResource('database/' . $databaseId)
->setPayload($database->getArrayCopy())
;
$usage->setParam('databases.delete', 1); $usage->setParam('databases.delete', 1);
@ -475,7 +473,7 @@ App::post('/v1/databases/:databaseId/collections')
->label('event', 'databases.[databaseId].collections.[collectionId].create') ->label('event', 'databases.[databaseId].collections.[collectionId].create')
->label('scope', 'collections.write') ->label('scope', 'collections.write')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}') ->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('audits.payload', '*') ->label('audits.payload', true)
->label('sdk.auth', [APP_AUTH_TYPE_KEY]) ->label('sdk.auth', [APP_AUTH_TYPE_KEY])
->label('sdk.namespace', 'databases') ->label('sdk.namespace', 'databases')
->label('sdk.method', 'createCollection') ->label('sdk.method', 'createCollection')
@ -725,7 +723,7 @@ App::put('/v1/databases/:databaseId/collections/:collectionId')
->label('scope', 'collections.write') ->label('scope', 'collections.write')
->label('event', 'databases.[databaseId].collections.[collectionId].update') ->label('event', 'databases.[databaseId].collections.[collectionId].update')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}') ->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('audits-payload', '*') ->label('audits-payload', true)
->label('sdk.auth', [APP_AUTH_TYPE_KEY]) ->label('sdk.auth', [APP_AUTH_TYPE_KEY])
->label('sdk.namespace', 'databases') ->label('sdk.namespace', 'databases')
->label('sdk.method', 'updateCollection') ->label('sdk.method', 'updateCollection')
@ -793,6 +791,7 @@ App::delete('/v1/databases/:databaseId/collections/:collectionId')
->groups(['api', 'database']) ->groups(['api', 'database'])
->label('scope', 'collections.write') ->label('scope', 'collections.write')
->label('event', 'databases.[databaseId].collections.[collectionId].delete') ->label('event', 'databases.[databaseId].collections.[collectionId].delete')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('sdk.auth', [APP_AUTH_TYPE_KEY]) ->label('sdk.auth', [APP_AUTH_TYPE_KEY])
->label('sdk.namespace', 'databases') ->label('sdk.namespace', 'databases')
->label('sdk.method', 'deleteCollection') ->label('sdk.method', 'deleteCollection')
@ -839,10 +838,7 @@ App::delete('/v1/databases/:databaseId/collections/:collectionId')
->setPayload($response->output($collection, Response::MODEL_COLLECTION)) ->setPayload($response->output($collection, Response::MODEL_COLLECTION))
; ;
$audits $audits->setPayload($collection->getArrayCopy());
->setResource('database/' . $databaseId . '/collection/' . $collectionId)
->setPayload($collection->getArrayCopy())
;
$usage $usage
->setParam('databaseId', $databaseId) ->setParam('databaseId', $databaseId)
@ -858,7 +854,7 @@ App::post('/v1/databases/:databaseId/collections/:collectionId/attributes/string
->label('event', 'databases.[databaseId].collections.[collectionId].attributes.[attributeId].create') ->label('event', 'databases.[databaseId].collections.[collectionId].attributes.[attributeId].create')
->label('scope', 'collections.write') ->label('scope', 'collections.write')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}') ->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('audits.payload', '*') ->label('audits.payload', true)
->label('sdk.auth', [APP_AUTH_TYPE_KEY]) ->label('sdk.auth', [APP_AUTH_TYPE_KEY])
->label('sdk.namespace', 'databases') ->label('sdk.namespace', 'databases')
->label('sdk.method', 'createStringAttribute') ->label('sdk.method', 'createStringAttribute')
@ -905,7 +901,7 @@ App::post('/v1/databases/:databaseId/collections/:collectionId/attributes/email'
->label('event', 'databases.[databaseId].collections.[collectionId].attributes.[attributeId].create') ->label('event', 'databases.[databaseId].collections.[collectionId].attributes.[attributeId].create')
->label('scope', 'collections.write') ->label('scope', 'collections.write')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}') ->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('audits.payload', '*') ->label('audits.payload', true)
->label('sdk.namespace', 'databases') ->label('sdk.namespace', 'databases')
->label('sdk.auth', [APP_AUTH_TYPE_KEY]) ->label('sdk.auth', [APP_AUTH_TYPE_KEY])
->label('sdk.method', 'createEmailAttribute') ->label('sdk.method', 'createEmailAttribute')
@ -946,7 +942,7 @@ App::post('/v1/databases/:databaseId/collections/:collectionId/attributes/enum')
->label('event', 'databases.[databaseId].collections.[collectionId].attributes.[attributeId].create') ->label('event', 'databases.[databaseId].collections.[collectionId].attributes.[attributeId].create')
->label('scope', 'collections.write') ->label('scope', 'collections.write')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}') ->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('audits.payload', '*') ->label('audits.payload', true)
->label('sdk.namespace', 'databases') ->label('sdk.namespace', 'databases')
->label('sdk.auth', [APP_AUTH_TYPE_KEY]) ->label('sdk.auth', [APP_AUTH_TYPE_KEY])
->label('sdk.method', 'createEnumAttribute') ->label('sdk.method', 'createEnumAttribute')
@ -1003,7 +999,7 @@ App::post('/v1/databases/:databaseId/collections/:collectionId/attributes/ip')
->label('event', 'databases.[databaseId].collections.[collectionId].attributes.[attributeId].create') ->label('event', 'databases.[databaseId].collections.[collectionId].attributes.[attributeId].create')
->label('scope', 'collections.write') ->label('scope', 'collections.write')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}') ->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('audits.payload', '*') ->label('audits.payload', true)
->label('sdk.namespace', 'databases') ->label('sdk.namespace', 'databases')
->label('sdk.auth', [APP_AUTH_TYPE_KEY]) ->label('sdk.auth', [APP_AUTH_TYPE_KEY])
->label('sdk.method', 'createIpAttribute') ->label('sdk.method', 'createIpAttribute')
@ -1044,7 +1040,7 @@ App::post('/v1/databases/:databaseId/collections/:collectionId/attributes/url')
->label('event', 'databases.[databaseId].collections.[collectionId].attributes.[attributeId].create') ->label('event', 'databases.[databaseId].collections.[collectionId].attributes.[attributeId].create')
->label('scope', 'collections.write') ->label('scope', 'collections.write')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}') ->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('audits.payload', '*') ->label('audits.payload', true)
->label('sdk.namespace', 'databases') ->label('sdk.namespace', 'databases')
->label('sdk.auth', [APP_AUTH_TYPE_KEY]) ->label('sdk.auth', [APP_AUTH_TYPE_KEY])
->label('sdk.method', 'createUrlAttribute') ->label('sdk.method', 'createUrlAttribute')
@ -1085,7 +1081,7 @@ App::post('/v1/databases/:databaseId/collections/:collectionId/attributes/intege
->label('event', 'databases.[databaseId].collections.[collectionId].attributes.[attributeId].create') ->label('event', 'databases.[databaseId].collections.[collectionId].attributes.[attributeId].create')
->label('scope', 'collections.write') ->label('scope', 'collections.write')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}') ->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('audits.payload', '*') ->label('audits.payload', true)
->label('sdk.namespace', 'databases') ->label('sdk.namespace', 'databases')
->label('sdk.auth', [APP_AUTH_TYPE_KEY]) ->label('sdk.auth', [APP_AUTH_TYPE_KEY])
->label('sdk.method', 'createIntegerAttribute') ->label('sdk.method', 'createIntegerAttribute')
@ -1155,7 +1151,7 @@ App::post('/v1/databases/:databaseId/collections/:collectionId/attributes/float'
->label('event', 'databases.[databaseId].collections.[collectionId].attributes.[attributeId].create') ->label('event', 'databases.[databaseId].collections.[collectionId].attributes.[attributeId].create')
->label('scope', 'collections.write') ->label('scope', 'collections.write')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}') ->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('audits.payload', '*') ->label('audits.payload', true)
->label('sdk.namespace', 'databases') ->label('sdk.namespace', 'databases')
->label('sdk.auth', [APP_AUTH_TYPE_KEY]) ->label('sdk.auth', [APP_AUTH_TYPE_KEY])
->label('sdk.method', 'createFloatAttribute') ->label('sdk.method', 'createFloatAttribute')
@ -1228,7 +1224,7 @@ App::post('/v1/databases/:databaseId/collections/:collectionId/attributes/boolea
->label('event', 'databases.[databaseId].collections.[collectionId].attributes.[attributeId].create') ->label('event', 'databases.[databaseId].collections.[collectionId].attributes.[attributeId].create')
->label('scope', 'collections.write') ->label('scope', 'collections.write')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}') ->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('audits.payload', '*') ->label('audits.payload', true)
->label('sdk.namespace', 'databases') ->label('sdk.namespace', 'databases')
->label('sdk.auth', [APP_AUTH_TYPE_KEY]) ->label('sdk.auth', [APP_AUTH_TYPE_KEY])
->label('sdk.method', 'createBooleanAttribute') ->label('sdk.method', 'createBooleanAttribute')
@ -1380,6 +1376,7 @@ App::delete('/v1/databases/:databaseId/collections/:collectionId/attributes/:key
->groups(['api', 'database']) ->groups(['api', 'database'])
->label('scope', 'collections.write') ->label('scope', 'collections.write')
->label('event', 'databases.[databaseId].collections.[collectionId].attributes.[attributeId].delete') ->label('event', 'databases.[databaseId].collections.[collectionId].attributes.[attributeId].delete')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('sdk.auth', [APP_AUTH_TYPE_KEY]) ->label('sdk.auth', [APP_AUTH_TYPE_KEY])
->label('sdk.namespace', 'databases') ->label('sdk.namespace', 'databases')
->label('sdk.method', 'deleteAttribute') ->label('sdk.method', 'deleteAttribute')
@ -1460,10 +1457,7 @@ App::delete('/v1/databases/:databaseId/collections/:collectionId/attributes/:key
->setPayload($response->output($attribute, $model)) ->setPayload($response->output($attribute, $model))
; ;
$audits $audits->setPayload($attribute->getArrayCopy());
->setResource('database/' . $databaseId . '/collection/' . $collectionId)
->setPayload($attribute->getArrayCopy())
;
$response->noContent(); $response->noContent();
}); });
@ -1475,7 +1469,7 @@ App::post('/v1/databases/:databaseId/collections/:collectionId/indexes')
->label('event', 'databases.[databaseId].collections.[collectionId].indexes.[indexId].create') ->label('event', 'databases.[databaseId].collections.[collectionId].indexes.[indexId].create')
->label('scope', 'collections.write') ->label('scope', 'collections.write')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}') ->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('audits.payload', '*') ->label('audits.payload', true)
->label('sdk.auth', [APP_AUTH_TYPE_KEY]) ->label('sdk.auth', [APP_AUTH_TYPE_KEY])
->label('sdk.namespace', 'databases') ->label('sdk.namespace', 'databases')
->label('sdk.method', 'createIndex') ->label('sdk.method', 'createIndex')
@ -1719,6 +1713,7 @@ App::delete('/v1/databases/:databaseId/collections/:collectionId/indexes/:key')
->groups(['api', 'database']) ->groups(['api', 'database'])
->label('scope', 'collections.write') ->label('scope', 'collections.write')
->label('event', 'databases.[databaseId].collections.[collectionId].indexes.[indexId].delete') ->label('event', 'databases.[databaseId].collections.[collectionId].indexes.[indexId].delete')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('sdk.auth', [APP_AUTH_TYPE_KEY]) ->label('sdk.auth', [APP_AUTH_TYPE_KEY])
->label('sdk.namespace', 'databases') ->label('sdk.namespace', 'databases')
->label('sdk.method', 'deleteIndex') ->label('sdk.method', 'deleteIndex')
@ -1780,10 +1775,7 @@ App::delete('/v1/databases/:databaseId/collections/:collectionId/indexes/:key')
->setPayload($response->output($index, Response::MODEL_INDEX)) ->setPayload($response->output($index, Response::MODEL_INDEX))
; ;
$audits $audits->setPayload($index->getArrayCopy());
->setResource('database/' . $databaseId . '/collection/' . $collection->getId())
->setPayload($index->getArrayCopy())
;
$response->noContent(); $response->noContent();
}); });
@ -1795,7 +1787,7 @@ App::post('/v1/databases/:databaseId/collections/:collectionId/documents')
->label('event', 'databases.[databaseId].collections.[collectionId].documents.[documentId].create') ->label('event', 'databases.[databaseId].collections.[collectionId].documents.[documentId].create')
->label('scope', 'documents.write') ->label('scope', 'documents.write')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}') ->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('audits.payload', '*') ->label('audits.payload', true)
->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT])
->label('sdk.namespace', 'databases') ->label('sdk.namespace', 'databases')
->label('sdk.method', 'createDocument') ->label('sdk.method', 'createDocument')
@ -2191,8 +2183,8 @@ App::patch('/v1/databases/:databaseId/collections/:collectionId/documents/:docum
->groups(['api', 'database']) ->groups(['api', 'database'])
->label('event', 'databases.[databaseId].collections.[collectionId].documents.[documentId].update') ->label('event', 'databases.[databaseId].collections.[collectionId].documents.[documentId].update')
->label('scope', 'documents.write') ->label('scope', 'documents.write')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}/document/{payload.$id}') ->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}/document/{response.$id}')
->label('audits.payload', '*') ->label('audits.payload', true)
->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT])
->label('sdk.namespace', 'databases') ->label('sdk.namespace', 'databases')
->label('sdk.method', 'updateDocument') ->label('sdk.method', 'updateDocument')
@ -2326,6 +2318,7 @@ App::delete('/v1/databases/:databaseId/collections/:collectionId/documents/:docu
->groups(['api', 'database']) ->groups(['api', 'database'])
->label('scope', 'documents.write') ->label('scope', 'documents.write')
->label('event', 'databases.[databaseId].collections.[collectionId].documents.[documentId].delete') ->label('event', 'databases.[databaseId].collections.[collectionId].documents.[documentId].delete')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}/document/{request.documentId}')
->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT])
->label('sdk.namespace', 'databases') ->label('sdk.namespace', 'databases')
->label('sdk.method', 'deleteDocument') ->label('sdk.method', 'deleteDocument')
@ -2412,10 +2405,7 @@ App::delete('/v1/databases/:databaseId/collections/:collectionId/documents/:docu
->setPayload($response->output($document, Response::MODEL_DOCUMENT)) ->setPayload($response->output($document, Response::MODEL_DOCUMENT))
; ;
$audits $audits->setPayload($document->getArrayCopy());
->setResource('database/' . $databaseId . '/collection/' . $collectionId . '/document/' . $document->getId())
->setPayload($document->getArrayCopy())
;
$response->noContent(); $response->noContent();
}); });

View file

@ -46,8 +46,8 @@ App::post('/v1/storage/buckets')
->groups(['api', 'storage']) ->groups(['api', 'storage'])
->label('scope', 'buckets.write') ->label('scope', 'buckets.write')
->label('event', 'buckets.[bucketId].create') ->label('event', 'buckets.[bucketId].create')
->label('audits.resource', 'storage/buckets/{payload.$id}') ->label('audits.resource', 'storage/buckets/{response.$id}')
->label('audits.payload', '*') ->label('audits.payload', true)
->label('sdk.auth', [APP_AUTH_TYPE_KEY]) ->label('sdk.auth', [APP_AUTH_TYPE_KEY])
->label('sdk.namespace', 'storage') ->label('sdk.namespace', 'storage')
->label('sdk.method', 'createBucket') ->label('sdk.method', 'createBucket')
@ -210,8 +210,8 @@ App::put('/v1/storage/buckets/:bucketId')
->groups(['api', 'storage']) ->groups(['api', 'storage'])
->label('scope', 'buckets.write') ->label('scope', 'buckets.write')
->label('event', 'buckets.[bucketId].update') ->label('event', 'buckets.[bucketId].update')
->label('audits.resource', 'storage/buckets/{payload.$id}') ->label('audits.resource', 'storage/buckets/{response.$id}')
->label('audits.payload', '*') ->label('audits.payload', true)
->label('sdk.auth', [APP_AUTH_TYPE_KEY]) ->label('sdk.auth', [APP_AUTH_TYPE_KEY])
->label('sdk.namespace', 'storage') ->label('sdk.namespace', 'storage')
->label('sdk.method', 'updateBucket') ->label('sdk.method', 'updateBucket')
@ -273,6 +273,7 @@ App::delete('/v1/storage/buckets/:bucketId')
->groups(['api', 'storage']) ->groups(['api', 'storage'])
->label('scope', 'buckets.write') ->label('scope', 'buckets.write')
->label('event', 'buckets.[bucketId].delete') ->label('event', 'buckets.[bucketId].delete')
->label('audits.resource', 'storage/buckets/{request.bucketId}')
->label('sdk.auth', [APP_AUTH_TYPE_KEY]) ->label('sdk.auth', [APP_AUTH_TYPE_KEY])
->label('sdk.namespace', 'storage') ->label('sdk.namespace', 'storage')
->label('sdk.method', 'deleteBucket') ->label('sdk.method', 'deleteBucket')
@ -306,10 +307,7 @@ App::delete('/v1/storage/buckets/:bucketId')
->setPayload($response->output($bucket, Response::MODEL_BUCKET)) ->setPayload($response->output($bucket, Response::MODEL_BUCKET))
; ;
$audits $audits->setPayload($bucket->getArrayCopy());
->setResource('storage/buckets/' . $bucket->getId())
->setPayload($bucket->getArrayCopy())
;
$usage->setParam('storage.buckets.delete', 1); $usage->setParam('storage.buckets.delete', 1);
@ -322,7 +320,7 @@ App::post('/v1/storage/buckets/:bucketId/files')
->groups(['api', 'storage']) ->groups(['api', 'storage'])
->label('scope', 'files.write') ->label('scope', 'files.write')
->label('event', 'buckets.[bucketId].files.[fileId].create') ->label('event', 'buckets.[bucketId].files.[fileId].create')
->label('audits.resource', 'storage/files/{payload.$id}') ->label('audits.resource', 'storage/files/{response.$id}')
->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT])
->label('sdk.namespace', 'storage') ->label('sdk.namespace', 'storage')
->label('sdk.method', 'createFile') ->label('sdk.method', 'createFile')
@ -1267,7 +1265,7 @@ App::put('/v1/storage/buckets/:bucketId/files/:fileId')
->groups(['api', 'storage']) ->groups(['api', 'storage'])
->label('scope', 'files.write') ->label('scope', 'files.write')
->label('event', 'buckets.[bucketId].files.[fileId].update') ->label('event', 'buckets.[bucketId].files.[fileId].update')
->label('audits.resource', 'storage/files/{payload.$id}') ->label('audits.resource', 'storage/files/{response.$id}')
->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT])
->label('sdk.namespace', 'storage') ->label('sdk.namespace', 'storage')
->label('sdk.method', 'updateFile') ->label('sdk.method', 'updateFile')
@ -1362,6 +1360,7 @@ App::delete('/v1/storage/buckets/:bucketId/files/:fileId')
->groups(['api', 'storage']) ->groups(['api', 'storage'])
->label('scope', 'files.write') ->label('scope', 'files.write')
->label('event', 'buckets.[bucketId].files.[fileId].delete') ->label('event', 'buckets.[bucketId].files.[fileId].delete')
->label('audits.resource', 'file/{request.fileId}')
->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT])
->label('sdk.namespace', 'storage') ->label('sdk.namespace', 'storage')
->label('sdk.method', 'deleteFile') ->label('sdk.method', 'deleteFile')
@ -1373,12 +1372,11 @@ App::delete('/v1/storage/buckets/:bucketId/files/:fileId')
->inject('response') ->inject('response')
->inject('dbForProject') ->inject('dbForProject')
->inject('events') ->inject('events')
->inject('audits')
->inject('usage') ->inject('usage')
->inject('mode') ->inject('mode')
->inject('deviceFiles') ->inject('deviceFiles')
->inject('project') ->inject('project')
->action(function (string $bucketId, string $fileId, Response $response, Database $dbForProject, Event $events, Audit $audits, Stats $usage, string $mode, Device $deviceFiles, Document $project) { ->action(function (string $bucketId, string $fileId, Response $response, Database $dbForProject, Event $events, Stats $usage, string $mode, Device $deviceFiles, Document $project) {
$bucket = Authorization::skip(fn () => $dbForProject->getDocument('buckets', $bucketId)); $bucket = Authorization::skip(fn () => $dbForProject->getDocument('buckets', $bucketId));
if ( if (
@ -1434,8 +1432,6 @@ App::delete('/v1/storage/buckets/:bucketId/files/:fileId')
throw new Exception('Failed to delete file from device', 500, Exception::GENERAL_SERVER_ERROR); throw new Exception('Failed to delete file from device', 500, Exception::GENERAL_SERVER_ERROR);
} }
$audits->setResource('file/' . $file->getId());
$usage $usage
->setParam('storage', $file->getAttribute('size', 0) * -1) ->setParam('storage', $file->getAttribute('size', 0) * -1)
->setParam('storage.files.delete', 1) ->setParam('storage.files.delete', 1)

View file

@ -36,6 +36,8 @@ App::post('/v1/teams')
->groups(['api', 'teams']) ->groups(['api', 'teams'])
->label('event', 'teams.[teamId].create') ->label('event', 'teams.[teamId].create')
->label('scope', 'teams.write') ->label('scope', 'teams.write')
->label('audits.resource', 'team/{response.$id}')
->label('audits.payload', true)
->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT])
->label('sdk.namespace', 'teams') ->label('sdk.namespace', 'teams')
->label('sdk.method', 'create') ->label('sdk.method', 'create')
@ -50,8 +52,7 @@ App::post('/v1/teams')
->inject('user') ->inject('user')
->inject('dbForProject') ->inject('dbForProject')
->inject('events') ->inject('events')
->inject('audits') ->action(function (string $teamId, string $name, array $roles, Response $response, Document $user, Database $dbForProject, Event $events) {
->action(function (string $teamId, string $name, array $roles, Response $response, Document $user, Database $dbForProject, Event $events, Event $audits) {
$isPrivilegedUser = Auth::isPrivilegedUser(Authorization::getRoles()); $isPrivilegedUser = Auth::isPrivilegedUser(Authorization::getRoles());
$isAppUser = Auth::isAppUser(Authorization::getRoles()); $isAppUser = Auth::isAppUser(Authorization::getRoles());
@ -94,12 +95,6 @@ App::post('/v1/teams')
$events->setParam('userId', $user->getId()); $events->setParam('userId', $user->getId());
} }
$audits
->setParam('event', 'teams.create')
->setParam('resource', 'team/' . $teamId)
->setParam('data', $team->getArrayCopy())
;
$response->setStatusCode(Response::STATUS_CODE_CREATED); $response->setStatusCode(Response::STATUS_CODE_CREATED);
$response->dynamic($team, Response::MODEL_TEAM); $response->dynamic($team, Response::MODEL_TEAM);
}); });
@ -178,6 +173,7 @@ App::put('/v1/teams/:teamId')
->groups(['api', 'teams']) ->groups(['api', 'teams'])
->label('event', 'teams.[teamId].update') ->label('event', 'teams.[teamId].update')
->label('scope', 'teams.write') ->label('scope', 'teams.write')
->label('audits.resource', 'team/{response.$id}')
->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT])
->label('sdk.namespace', 'teams') ->label('sdk.namespace', 'teams')
->label('sdk.method', 'update') ->label('sdk.method', 'update')
@ -190,8 +186,7 @@ App::put('/v1/teams/:teamId')
->inject('response') ->inject('response')
->inject('dbForProject') ->inject('dbForProject')
->inject('events') ->inject('events')
->inject('audits') ->action(function (string $teamId, string $name, Response $response, Database $dbForProject, Event $events) {
->action(function (string $teamId, string $name, Response $response, Database $dbForProject, Event $events, EventAudit $audits) {
$team = $dbForProject->getDocument('teams', $teamId); $team = $dbForProject->getDocument('teams', $teamId);
@ -204,7 +199,6 @@ App::put('/v1/teams/:teamId')
->setAttribute('search', implode(' ', [$teamId, $name]))); ->setAttribute('search', implode(' ', [$teamId, $name])));
$events->setParam('teamId', $team->getId()); $events->setParam('teamId', $team->getId());
$audits->setResource('team/' . $team->getId());
$response->dynamic($team, Response::MODEL_TEAM); $response->dynamic($team, Response::MODEL_TEAM);
}); });
@ -259,7 +253,6 @@ App::delete('/v1/teams/:teamId')
; ;
$audits $audits
->setParam('event', 'teams.delete')
->setParam('resource', 'team/' . $teamId) ->setParam('resource', 'team/' . $teamId)
->setParam('data', $team->getArrayCopy()) ->setParam('data', $team->getArrayCopy())
; ;
@ -273,6 +266,7 @@ App::post('/v1/teams/:teamId/memberships')
->label('event', 'teams.[teamId].memberships.[membershipId].create') ->label('event', 'teams.[teamId].memberships.[membershipId].create')
->label('scope', 'teams.write') ->label('scope', 'teams.write')
->label('auth.type', 'invites') ->label('auth.type', 'invites')
->label('audits.resource', 'team/{response.$id}')
->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT])
->label('sdk.namespace', 'teams') ->label('sdk.namespace', 'teams')
->label('sdk.method', 'createMembership') ->label('sdk.method', 'createMembership')
@ -291,10 +285,9 @@ App::post('/v1/teams/:teamId/memberships')
->inject('user') ->inject('user')
->inject('dbForProject') ->inject('dbForProject')
->inject('locale') ->inject('locale')
->inject('audits')
->inject('mails') ->inject('mails')
->inject('events') ->inject('events')
->action(function (string $teamId, string $email, array $roles, string $url, string $name, Response $response, Document $project, Document $user, Database $dbForProject, Locale $locale, EventAudit $audits, Mail $mails, Event $events) { ->action(function (string $teamId, string $email, array $roles, string $url, string $name, Response $response, Document $project, Document $user, Database $dbForProject, Locale $locale, Mail $mails, Event $events) {
$isPrivilegedUser = Auth::isPrivilegedUser(Authorization::getRoles()); $isPrivilegedUser = Auth::isPrivilegedUser(Authorization::getRoles());
$isAppUser = Auth::isAppUser(Authorization::getRoles()); $isAppUser = Auth::isAppUser(Authorization::getRoles());
@ -414,10 +407,6 @@ App::post('/v1/teams/:teamId/memberships')
; ;
} }
$audits
->setResource('team/' . $teamId)
;
$events $events
->setParam('teamId', $team->getId()) ->setParam('teamId', $team->getId())
->setParam('membershipId', $membership->getId()) ->setParam('membershipId', $membership->getId())
@ -556,6 +545,7 @@ App::patch('/v1/teams/:teamId/memberships/:membershipId')
->groups(['api', 'teams']) ->groups(['api', 'teams'])
->label('event', 'teams.[teamId].memberships.[membershipId].update') ->label('event', 'teams.[teamId].memberships.[membershipId].update')
->label('scope', 'teams.write') ->label('scope', 'teams.write')
->label('audits.resource', 'team/{response.$id}')
->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT])
->label('sdk.namespace', 'teams') ->label('sdk.namespace', 'teams')
->label('sdk.method', 'updateMembershipRoles') ->label('sdk.method', 'updateMembershipRoles')
@ -570,9 +560,8 @@ App::patch('/v1/teams/:teamId/memberships/:membershipId')
->inject('response') ->inject('response')
->inject('user') ->inject('user')
->inject('dbForProject') ->inject('dbForProject')
->inject('audits')
->inject('events') ->inject('events')
->action(function (string $teamId, string $membershipId, array $roles, Request $request, Response $response, Document $user, Database $dbForProject, EventAudit $audits, Event $events) { ->action(function (string $teamId, string $membershipId, array $roles, Request $request, Response $response, Document $user, Database $dbForProject, Event $events) {
$team = $dbForProject->getDocument('teams', $teamId); $team = $dbForProject->getDocument('teams', $teamId);
if ($team->isEmpty()) { if ($team->isEmpty()) {
@ -608,8 +597,6 @@ App::patch('/v1/teams/:teamId/memberships/:membershipId')
*/ */
$dbForProject->deleteCachedDocument('users', $profile->getId()); $dbForProject->deleteCachedDocument('users', $profile->getId());
$audits->setResource('team/' . $teamId);
$events $events
->setParam('teamId', $team->getId()) ->setParam('teamId', $team->getId())
->setParam('membershipId', $membership->getId()); ->setParam('membershipId', $membership->getId());
@ -628,6 +615,7 @@ App::patch('/v1/teams/:teamId/memberships/:membershipId/status')
->groups(['api', 'teams']) ->groups(['api', 'teams'])
->label('event', 'teams.[teamId].memberships.[membershipId].update.status') ->label('event', 'teams.[teamId].memberships.[membershipId].update.status')
->label('scope', 'public') ->label('scope', 'public')
->label('audits.resource', 'team/{response.$id}')
->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT]) ->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT])
->label('sdk.namespace', 'teams') ->label('sdk.namespace', 'teams')
->label('sdk.method', 'updateMembershipStatus') ->label('sdk.method', 'updateMembershipStatus')
@ -644,9 +632,8 @@ App::patch('/v1/teams/:teamId/memberships/:membershipId/status')
->inject('user') ->inject('user')
->inject('dbForProject') ->inject('dbForProject')
->inject('geodb') ->inject('geodb')
->inject('audits')
->inject('events') ->inject('events')
->action(function (string $teamId, string $membershipId, string $userId, string $secret, Request $request, Response $response, Document $user, Database $dbForProject, Reader $geodb, EventAudit $audits, Event $events) { ->action(function (string $teamId, string $membershipId, string $userId, string $secret, Request $request, Response $response, Document $user, Database $dbForProject, Reader $geodb, Event $events) {
$protocol = $request->getProtocol(); $protocol = $request->getProtocol();
$membership = $dbForProject->getDocument('memberships', $membershipId); $membership = $dbForProject->getDocument('memberships', $membershipId);
@ -729,8 +716,6 @@ App::patch('/v1/teams/:teamId/memberships/:membershipId/status')
$team = Authorization::skip(fn() => $dbForProject->updateDocument('teams', $team->getId(), $team->setAttribute('total', $team->getAttribute('total', 0) + 1))); $team = Authorization::skip(fn() => $dbForProject->updateDocument('teams', $team->getId(), $team->setAttribute('total', $team->getAttribute('total', 0) + 1)));
$audits->setResource('team/' . $teamId);
$events $events
->setParam('teamId', $team->getId()) ->setParam('teamId', $team->getId())
->setParam('membershipId', $membership->getId()) ->setParam('membershipId', $membership->getId())
@ -761,6 +746,7 @@ App::delete('/v1/teams/:teamId/memberships/:membershipId')
->groups(['api', 'teams']) ->groups(['api', 'teams'])
->label('event', 'teams.[teamId].memberships.[membershipId].delete') ->label('event', 'teams.[teamId].memberships.[membershipId].delete')
->label('scope', 'teams.write') ->label('scope', 'teams.write')
->label('audits.resource', 'team/{request.teamId}')
->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT])
->label('sdk.namespace', 'teams') ->label('sdk.namespace', 'teams')
->label('sdk.method', 'deleteMembership') ->label('sdk.method', 'deleteMembership')
@ -771,9 +757,8 @@ App::delete('/v1/teams/:teamId/memberships/:membershipId')
->param('membershipId', '', new UID(), 'Membership ID.') ->param('membershipId', '', new UID(), 'Membership ID.')
->inject('response') ->inject('response')
->inject('dbForProject') ->inject('dbForProject')
->inject('audits')
->inject('events') ->inject('events')
->action(function (string $teamId, string $membershipId, Response $response, Database $dbForProject, EventAudit $audits, Event $events) { ->action(function (string $teamId, string $membershipId, Response $response, Database $dbForProject, Event $events) {
$membership = $dbForProject->getDocument('memberships', $membershipId); $membership = $dbForProject->getDocument('memberships', $membershipId);
@ -812,8 +797,6 @@ App::delete('/v1/teams/:teamId/memberships/:membershipId')
Authorization::skip(fn() => $dbForProject->updateDocument('teams', $team->getId(), $team)); Authorization::skip(fn() => $dbForProject->updateDocument('teams', $team->getId(), $team));
} }
$audits->setResource('team/' . $teamId);
$events $events
->setParam('teamId', $team->getId()) ->setParam('teamId', $team->getId())
->setParam('membershipId', $membership->getId()) ->setParam('membershipId', $membership->getId())

View file

@ -483,6 +483,7 @@ App::patch('/v1/users/:userId/name')
->groups(['api', 'users']) ->groups(['api', 'users'])
->label('event', 'users.[userId].update.name') ->label('event', 'users.[userId].update.name')
->label('scope', 'users.write') ->label('scope', 'users.write')
->label('audits.resource', 'user/{response.$id}')
->label('sdk.auth', [APP_AUTH_TYPE_KEY]) ->label('sdk.auth', [APP_AUTH_TYPE_KEY])
->label('sdk.namespace', 'users') ->label('sdk.namespace', 'users')
->label('sdk.method', 'updateName') ->label('sdk.method', 'updateName')
@ -494,9 +495,8 @@ App::patch('/v1/users/:userId/name')
->param('name', '', new Text(128), 'User name. Max length: 128 chars.') ->param('name', '', new Text(128), 'User name. Max length: 128 chars.')
->inject('response') ->inject('response')
->inject('dbForProject') ->inject('dbForProject')
->inject('audits')
->inject('events') ->inject('events')
->action(function (string $userId, string $name, Response $response, Database $dbForProject, EventAudit $audits, Event $events) { ->action(function (string $userId, string $name, Response $response, Database $dbForProject, Event $events) {
$user = $dbForProject->getDocument('users', $userId); $user = $dbForProject->getDocument('users', $userId);
@ -511,13 +511,7 @@ App::patch('/v1/users/:userId/name')
$user = $dbForProject->updateDocument('users', $user->getId(), $user); $user = $dbForProject->updateDocument('users', $user->getId(), $user);
$audits $events->setParam('userId', $user->getId());
->setResource('user/' . $user->getId())
;
$events
->setParam('userId', $user->getId())
;
$response->dynamic($user, Response::MODEL_USER); $response->dynamic($user, Response::MODEL_USER);
}); });
@ -527,6 +521,7 @@ App::patch('/v1/users/:userId/password')
->groups(['api', 'users']) ->groups(['api', 'users'])
->label('event', 'users.[userId].update.password') ->label('event', 'users.[userId].update.password')
->label('scope', 'users.write') ->label('scope', 'users.write')
->label('audits.resource', 'user/{response.$id}')
->label('sdk.auth', [APP_AUTH_TYPE_KEY]) ->label('sdk.auth', [APP_AUTH_TYPE_KEY])
->label('sdk.namespace', 'users') ->label('sdk.namespace', 'users')
->label('sdk.method', 'updatePassword') ->label('sdk.method', 'updatePassword')
@ -538,9 +533,8 @@ App::patch('/v1/users/:userId/password')
->param('password', '', new Password(), 'New user password. Must be at least 8 chars.') ->param('password', '', new Password(), 'New user password. Must be at least 8 chars.')
->inject('response') ->inject('response')
->inject('dbForProject') ->inject('dbForProject')
->inject('audits')
->inject('events') ->inject('events')
->action(function (string $userId, string $password, Response $response, Database $dbForProject, EventAudit $audits, Event $events) { ->action(function (string $userId, string $password, Response $response, Database $dbForProject, Event $events) {
$user = $dbForProject->getDocument('users', $userId); $user = $dbForProject->getDocument('users', $userId);
@ -554,13 +548,7 @@ App::patch('/v1/users/:userId/password')
$user = $dbForProject->updateDocument('users', $user->getId(), $user); $user = $dbForProject->updateDocument('users', $user->getId(), $user);
$audits $events->setParam('userId', $user->getId());
->setResource('user/' . $user->getId())
;
$events
->setParam('userId', $user->getId())
;
$response->dynamic($user, Response::MODEL_USER); $response->dynamic($user, Response::MODEL_USER);
}); });
@ -570,6 +558,7 @@ App::patch('/v1/users/:userId/email')
->groups(['api', 'users']) ->groups(['api', 'users'])
->label('event', 'users.[userId].update.email') ->label('event', 'users.[userId].update.email')
->label('scope', 'users.write') ->label('scope', 'users.write')
->label('audits.resource', 'user/{response.$id}')
->label('sdk.auth', [APP_AUTH_TYPE_KEY]) ->label('sdk.auth', [APP_AUTH_TYPE_KEY])
->label('sdk.namespace', 'users') ->label('sdk.namespace', 'users')
->label('sdk.method', 'updateEmail') ->label('sdk.method', 'updateEmail')
@ -581,9 +570,8 @@ App::patch('/v1/users/:userId/email')
->param('email', '', new Email(), 'User email.') ->param('email', '', new Email(), 'User email.')
->inject('response') ->inject('response')
->inject('dbForProject') ->inject('dbForProject')
->inject('audits')
->inject('events') ->inject('events')
->action(function (string $userId, string $email, Response $response, Database $dbForProject, EventAudit $audits, Event $events) { ->action(function (string $userId, string $email, Response $response, Database $dbForProject, Event $events) {
$user = $dbForProject->getDocument('users', $userId); $user = $dbForProject->getDocument('users', $userId);
@ -605,11 +593,6 @@ App::patch('/v1/users/:userId/email')
throw new Exception('Email already exists', 409, Exception::USER_EMAIL_ALREADY_EXISTS); throw new Exception('Email already exists', 409, Exception::USER_EMAIL_ALREADY_EXISTS);
} }
$audits
->setResource('user/' . $user->getId())
;
$events $events
->setParam('userId', $user->getId()) ->setParam('userId', $user->getId())
; ;
@ -622,6 +605,7 @@ App::patch('/v1/users/:userId/phone')
->groups(['api', 'users']) ->groups(['api', 'users'])
->label('event', 'users.[userId].update.phone') ->label('event', 'users.[userId].update.phone')
->label('scope', 'users.write') ->label('scope', 'users.write')
->label('audits.resource', 'user/{response.$id}')
->label('sdk.auth', [APP_AUTH_TYPE_KEY]) ->label('sdk.auth', [APP_AUTH_TYPE_KEY])
->label('sdk.namespace', 'users') ->label('sdk.namespace', 'users')
->label('sdk.method', 'updatePhone') ->label('sdk.method', 'updatePhone')
@ -633,9 +617,8 @@ App::patch('/v1/users/:userId/phone')
->param('number', '', new Phone(), 'User phone number.') ->param('number', '', new Phone(), 'User phone number.')
->inject('response') ->inject('response')
->inject('dbForProject') ->inject('dbForProject')
->inject('audits')
->inject('events') ->inject('events')
->action(function (string $userId, string $number, Response $response, Database $dbForProject, EventAudit $audits, Event $events) { ->action(function (string $userId, string $number, Response $response, Database $dbForProject, Event $events) {
$user = $dbForProject->getDocument('users', $userId); $user = $dbForProject->getDocument('users', $userId);
@ -654,14 +637,7 @@ App::patch('/v1/users/:userId/phone')
throw new Exception('Email already exists', 409, Exception::USER_EMAIL_ALREADY_EXISTS); throw new Exception('Email already exists', 409, Exception::USER_EMAIL_ALREADY_EXISTS);
} }
$events->setParam('userId', $user->getId());
$audits
->setResource('user/' . $user->getId())
;
$events
->setParam('userId', $user->getId())
;
$response->dynamic($user, Response::MODEL_USER); $response->dynamic($user, Response::MODEL_USER);
}); });

View file

@ -281,7 +281,7 @@ App::shutdown()
list($namespace, $replace) = explode('.', $match); list($namespace, $replace) = explode('.', $match);
switch ($namespace) { switch ($namespace) {
case 'payload': case 'response':
$params = $responsePayload; $params = $responsePayload;
break; break;
case 'request': case 'request':
@ -299,7 +299,7 @@ App::shutdown()
return $label; return $label;
}; };
$auditsResource = $route->getLabel('audits.resource',''); $auditsResource = $route->getLabel('audits.resource',null);
if(!empty($auditsResource)) { if(!empty($auditsResource)) {
$resource = $parseLabel($auditsResource); $resource = $parseLabel($auditsResource);
if(!empty($resource)) { if(!empty($resource)) {
@ -307,14 +307,11 @@ App::shutdown()
} }
} }
$auditsPayload = $route->getLabel('audits.payload',''); $auditsPayload = $route->getLabel('audits.payload',false);
if(!empty($auditsPayload)) { if(!empty($auditsPayload)) {
if($auditsPayload === '*'){ $audits->setPayload($responsePayload);
$audits->setPayload($responsePayload);
}
} }
if (!empty($audits->getResource())) { if (!empty($audits->getResource())) {
foreach ($events->getParams() as $key => $value) { foreach ($events->getParams() as $key => $value) {
$audits->setParam($key, $value); $audits->setParam($key, $value);