-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathtail_idm
More file actions
executable file
·80 lines (71 loc) · 2.56 KB
/
tail_idm
File metadata and controls
executable file
·80 lines (71 loc) · 2.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#!/usr/bin/env node
require('dotenv').config()
// Specify the full base URL of the FIDC service.
const origin = process.env.ORIGIN;
// Specify the log API key and secret,
// as described in https://backstage.forgerock.com/docs/idcloud/latest/paas/tenant/audit-logs.html#api-key
const api_key_id = process.env.API_KEY_ID;
const api_key_secret = process.env.API_KEY_SECRET;
/* Specify the logs' source, as described in https://backstage.forgerock.com/docs/idcloud/latest/paas/tenant/audit-logs.html#getting_sources
Currently available sources are listed below.
Uncomment the source you want to use.
For development and debugging use "am-core" and "idm-core" respectively. */
// const source = 'am-access'
// const source = 'am-activity'
// const source = 'am-authentication'
// const source = 'am-config'
// const source = 'am-core'
// const source = 'am-everything'
// const source = 'ctsstore'
// const source = 'ctsstore-access'
// const source = 'ctsstore-config-audit'
// const source = 'ctsstore-upgrade'
// const source = 'idm-access'
// const source = 'idm-activity'
// const source = 'idm-authentication'
// const source = 'idm-config'
const source = 'idm-core'
// const source = 'idm-everything'
// const source = 'idm-sync'
// const source = 'userstore'
// const source = 'userstore-access'
// const source = 'userstore-config-audit'
// const source = 'userstore-ldif-importer'
// const source = 'userstore-upgrade'
/**
* Function declaration.
* Processes the logs' content: filters, formats, etc.
* If undefined, a default one is applied defined in `tail.js`:
* @param {object} logsObject The object containing logs.
* @param {object[]} [logsObject.result] An array of logs.
* @param {string|object} [logsObject.result.payload] A log payload.
*/
const showLogs =
/**
* Processes the logs' content: filters, formats, etc.
* In this instance, prepares stringified JSON output for a command line tool like `jq`.
* @param {object} [logsObject] The object containing logs; expects an array of logs under the "result" key.
*/
function ({
logsObject
}) {
if (Array.isArray(logsObject.result)) {
logsObject.result.forEach(log => {
console.log(JSON.stringify(log.payload))
})
} else {
console.log(JSON.stringify(logsObject))
}
}
// End of user input.
const tail = require('./tail.js')
tail({
origin: origin,
api_key_id: api_key_id,
api_key_secret: api_key_secret,
source: source,
frequency: undefined,
exclude: true,
filter: undefined,
showLogs: showLogs
})