AuditService
Class: AuditService
Defined in: packages/core/src/services/audit.model.ts:180
Webda Modda
AuditService
Service that listens to operation success/failure events and records audit entries. Entries are kept in memory (accessible via getEntries()) and saved through the AuditEntry repository (the store the AuditEntry model is mapped to, the default store otherwise).
With exposeReadOperations: true it also registers the read operations
Audit.Subject (history of an object), Audit.Actor (activity of a user) and
Audit.Query (whole log), guarded by the object's canAct("audit") or the
readPermission parameter.
Extends
Constructors
Constructor
new AuditService(
name,params):AuditService
Defined in: packages/core/src/services/service.ts:192
Service
Parameters
name
string
The name of the service
params
The parameters block define in the configuration file
Returns
AuditService
Inherited from
Properties
_compiledCapabilities
protected_compiledCapabilities:Record<string,any> ={}
Defined in: packages/core/src/services/iservice.ts:58
Capabilities detected at compile-time from @WebdaCapability-tagged interfaces.
Populated during Service.resolve by reading the service's entry in
webda.module.json. Each key is a capability name (e.g., "request-filter"),
and the value is an empty object {} by default. Override getCapabilities
to provide capability-specific configuration or to conditionally disable capabilities.
See
getCapabilities
Inherited from
[WEBDA_EVENTS]
[WEBDA_EVENTS]:
object
Defined in: packages/core/src/services/service.ts:166
Set the Webda events here
Inherited from
entries
protectedentries:AuditEntry[] =[]
Defined in: packages/core/src/services/audit.model.ts:184
In-memory log of audit entries
logger
protectedlogger:Logger
Defined in: packages/core/src/services/service.ts:179
Logger with class context
Inherited from
metrics?
protectedoptionalmetrics?:object
Defined in: packages/core/src/services/service.ts:183
Get metrics
Inherited from
name
readonlyname:string
Defined in: packages/core/src/services/iservice.ts:35
Inherited from
parameters
readonlyparameters:AuditServiceParameters
Defined in: packages/core/src/services/iservice.ts:36
Inherited from
readPermissionQuery?
protectedoptionalreadPermissionQuery?:QueryValidator
Defined in: packages/core/src/services/audit.model.ts:189
Parsed readPermission
unsubscribers
protectedunsubscribers: () =>void[] =[]
Defined in: packages/core/src/services/audit.model.ts:194
Unsubscribe functions of the core event listeners
Returns
void
createConfiguration?
staticoptionalcreateConfiguration?: (params) =>any
Defined in: packages/core/src/services/iservice.ts:41
Create configuration set by the application on load
Parameters
params
any
Returns
any
Inherited from
filterConfiguration?
staticoptionalfilterConfiguration?: (params) =>any
Defined in: packages/core/src/services/iservice.ts:46
Create configuration set by the application on load
Parameters
params
any
Returns
any
Inherited from
Parameters
staticParameters: typeofServiceParameters=ServiceParameters
Defined in: packages/core/src/services/service.ts:162
Service parameters
Inherited from
Methods
__clean()
abstract__clean():Promise<void>
Defined in: packages/core/src/services/service.ts:492
Clean the service data, can only be used in test mode
Returns
Promise<void>
Inherited from
actorEntries()
actorEntries(
userId?,limit?,continuationToken?):Promise<{continuationToken?:string;results:AuditEntry[]; }>
Defined in: packages/core/src/services/audit.model.ts:426
Audit entries of one user (Audit.Actor)
A logged-in user can read their own entries; anyone else needs readPermission.
Parameters
userId?
string
the user, defaults to the current user
limit?
number
page size
continuationToken?
string
token of the previous page
Returns
Promise<{ continuationToken?: string; results: AuditEntry[]; }>
the page of entries
addAuditEntry()
addAuditEntry(
operationId,userId?,err?,subject?):Promise<void>
Defined in: packages/core/src/services/audit.model.ts:273
Create and store an audit entry for the given operation context and optional error
Parameters
operationId
string
the operation identifier
userId?
string
the user identifier (may be undefined for anonymous)
err?
Error
the error if the operation failed
subject?
the object the operation targeted, if any
Returns
Promise<void>
addListener()
addListener<
Key>(eventName,listener):this
Defined in: packages/core/src/events/asynceventemitter.ts:83
Type Parameters
Key
Key extends never
Parameters
eventName
Key
the event name
listener
(event) => void | Promise<void>
the event listener
Returns
this
this for chaining
See
EventEmitter.addListener
Inherited from
addRoute()
protectedaddRoute(url,methods,executer,openapi?,override?):void
Defined in: packages/core/src/services/service.ts:384
Add a route dynamicaly
Parameters
url
string
of the route can contains dynamic part like {uuid}
methods
the HTTP methods
executer
Function
Method to execute for this route
openapi?
the OpenAPI specification
override?
boolean = false
whether to override existing
Returns
void
Inherited from
authorizeClientEvent()
authorizeClientEvent(
_event,_context):boolean
Defined in: packages/core/src/services/service.ts:337
Authorize a public event subscription
Parameters
_event
string
the event name
_context
the execution context
Returns
boolean
true if the condition is met
Inherited from
computeParameters()
computeParameters():
void
Defined in: packages/core/src/services/service.ts:201
Used to compute or derivate input parameter to attribute
Returns
void
Deprecated
Inherited from
emit()
emit<
Key>(event,data):Promise<void>
Defined in: packages/core/src/services/service.ts:473
Emit the event with data and wait for Promise to finish if listener returned a Promise
Type Parameters
Key
Key extends never
Parameters
event
Key
the event name
data
object[Key]
the data to process
Returns
Promise<void>
Inherited from
findEntries()
protectedfindEntries(filter,limit?,continuationToken?):Promise<{continuationToken?:string;results:AuditEntry[]; }>
Defined in: packages/core/src/services/audit.model.ts:347
Query the audit entries matching a filter, newest first
Parameters
filter
string
WebdaQL filter (may be empty)
limit?
number
page size, clamped to 1..200 (default 50)
continuationToken?
string
token of the previous page
Returns
Promise<{ continuationToken?: string; results: AuditEntry[]; }>
the page of entries
getCapabilities()
getCapabilities():
Record<string,any>
Defined in: packages/core/src/services/iservice.ts:86
Return the capabilities of this service.
By default returns capabilities detected at compile-time from
Returns
Record<string, any>
the result
Webda Capability-tagged
interfaces in webda.module.json.
Override to disable capabilities based on configuration:
getCapabilities() {
const caps = super.getCapabilities();
if (!this.parameters.enabled) delete caps["request-filter"];
return caps;
}
Inherited from
getClientEvents()
getClientEvents():
string[]
Defined in: packages/core/src/services/service.ts:325
Return the events that an external system can subscribe to
Returns
string[]
the list of results
Inherited from
getEntries()
getEntries():
AuditEntry[]
Defined in: packages/core/src/services/audit.model.ts:238
Get all in-memory audit entries
Returns
the list of audit entries
getMaxListeners()
getMaxListeners():
number
Defined in: packages/core/src/events/asynceventemitter.ts:90
Returns
number
Inherited from
getMetric()
getMetric<
T>(type,configuration):T
Defined in: packages/core/src/services/service.ts:310
Add service name label
Type Parameters
T
T = Gauge<string> | Counter<string> | Histogram<string>
Parameters
type
CustomConstructor<T, [MetricConfiguration<T>]>
the type to look up
configuration
the configuration
Returns
T
the result
Inherited from
getName()
getName():
string
Defined in: packages/core/src/services/service.ts:483
Get service name
Returns
string
the result string
Inherited from
getOpenApiReplacements()
getOpenApiReplacements():
any
Defined in: packages/core/src/services/service.ts:413
Return variables for replacement in openapi
Returns
any
the result
Inherited from
Service.getOpenApiReplacements
getOperationId()
getOperationId(
id):string
Defined in: packages/core/src/services/service.ts:371
If undefined is returned it cancel the operation registration
Parameters
id
string
the identifier
Returns
string
the result
Inherited from
getParameters()
getParameters():
AuditServiceParameters
Defined in: packages/core/src/services/service.ts:209
Get the service parameters
Returns
the result
Inherited from
getService()
getService<
T>(name):ServicesMap[T]
Defined in: packages/core/src/services/service.ts:300
Get a service by name
Type Parameters
T
T extends keyof ServicesMap
Parameters
name
T
the name to use
Returns
ServicesMap[T]
the result map
Deprecated
Use useService, might reconsider
Inherited from
getState()
getState():
ServiceStates
Defined in: packages/core/src/services/service.ts:172
Get the current state
Returns
the result
Inherited from
getUrl()
getUrl(
url,_methods):string
Defined in: packages/core/src/services/service.ts:348
Return the full path url based on parameters
Parameters
url
string
relative url to service
_methods
in case we need filtering (like Store)
Returns
string
absolute url or undefined if need to skip the Route
Inherited from
hasReadPermission()
hasReadPermission(
context):boolean
Defined in: packages/core/src/services/audit.model.ts:332
Check the readPermission query against the current session
Parameters
context
the operation context
Returns
boolean
true if the session matches readPermission
init()
abstractinit():Promise<AuditService>
Defined in: packages/core/src/services/service.ts:463
Will be called after all the Services are created
Returns
Promise<AuditService>
Inherited from
initMetrics()
initMetrics():
void
Defined in: packages/core/src/services/service.ts:290
Init the metrics
Returns
void
Inherited from
initOperations()
initOperations():
void
Defined in: packages/core/src/services/service.ts:420
Init the operations from
Returns
void
Operation
decorators on this service
Inherited from
listeners()
listeners(
eventName):Function[]
Defined in: packages/core/src/events/asynceventemitter.ts:183
Get all listeners for an event
Parameters
eventName
never
the event name
Returns
Function[]
the list of results
Inherited from
loadCapabilities()
protectedloadCapabilities():void
Defined in: packages/core/src/services/service.ts:270
Load capabilities from webda.module.json metadata into _compiledCapabilities.
Called during resolve after dependency injection. Reads the service's
type name from parameters, looks it up in the application's module metadata
(moddas or beans section), and populates _compiledCapabilities with an
empty object for each declared capability name.
Fails silently if the application is not available (e.g., in unit tests where services are instantiated without a full application context).
Returns
void
Example
// If webda.module.json contains:
// { "moddas": { "MyApp/HawkService": { "capabilities": ["request-filter", "cors-filter"] } } }
// Then after resolve(), this.getCapabilities() returns:
// { "request-filter": {}, "cors-filter": {} }
See
getCapabilities
Inherited from
log()
log(
level, ...args):void
Defined in: packages/core/src/services/service.ts:513
Parameters
level
WorkerLogLevel
to log
args
...any[]
additional arguments
Returns
void
Inherited from
off()
off<
Key>(eventName,listener):this
Defined in: packages/core/src/events/asynceventemitter.ts:141
Type Parameters
Key
Key extends never
Parameters
eventName
Key
the event name
listener
(event) => void
the event listener
Returns
this
this for chaining
See
EventEmitter.off
Inherited from
on()
on<
Key>(eventName,listener):this
Defined in: packages/core/src/events/asynceventemitter.ts:119
Type Parameters
Key
Key extends never
Parameters
eventName
Key
the event name
listener
(event) => void
the event listener
Returns
this
this for chaining
See
EventEmitter.once
Inherited from
once()
once<
Key>(eventName,listener):this
Defined in: packages/core/src/events/asynceventemitter.ts:108
Type Parameters
Key
Key extends never
Parameters
eventName
Key
the event name
listener
(event) => void
the event listener
Returns
this
this for chaining
See
EventEmitter.once
Inherited from
queryEntries()
queryEntries(
q?,limit?,continuationToken?):Promise<{continuationToken?:string;results:AuditEntry[]; }>
Defined in: packages/core/src/services/audit.model.ts:445
Query the whole audit log (Audit.Query), requires readPermission
Only the filter part of q is used; ordering and paging are fixed.
Parameters
q?
string
WebdaQL filter over the entry fields
limit?
number
page size
continuationToken?
string
token of the previous page
Returns
Promise<{ continuationToken?: string; results: AuditEntry[]; }>
the page of entries
registerReadOperations()
protectedregisterReadOperations():void
Defined in: packages/core/src/services/audit.model.ts:295
Register the request schemas and the Audit.Subject / Audit.Actor / Audit.Query operations
Returns
void
removeAllListeners()
removeAllListeners<
Key>(eventName?):this
Defined in: packages/core/src/events/asynceventemitter.ts:150
Type Parameters
Key
Key extends never
Parameters
eventName?
Key
the event name
Returns
this
this for chaining
See
EventEmitter.removeAllListeners
Inherited from
removeListener()
removeListener<
Key>(eventName,listener):this
Defined in: packages/core/src/events/asynceventemitter.ts:130
Type Parameters
Key
Key extends never
Parameters
eventName
Key
the event name
listener
(event) => void
the event listener
Returns
this
this for chaining
See
EventEmitter.removeListener
Inherited from
resolve()
resolve():
this
Defined in: packages/core/src/services/audit.model.ts:217
Subscribe to operation success and failure events for audit logging
Returns
this
this for chaining
Overrides
setMaxListeners()
setMaxListeners(
n):this
Defined in: packages/core/src/events/asynceventemitter.ts:97
Parameters
n
number
Returns
this
Inherited from
shouldAudit()
shouldAudit(
operationId,success):boolean
Defined in: packages/core/src/services/audit.model.ts:249
Determine whether the given operation should be audited based on include/exclude filters and level configuration.
Parameters
operationId
string
the operation identifier
success
boolean
whether the operation succeeded
Returns
boolean
true if this operation should be audited
stop()
stop():
Promise<void>
Defined in: packages/core/src/services/audit.model.ts:208
Stop recording audit entries
Returns
Promise<void>
Overrides
subjectEntries()
subjectEntries(
model,key,limit?,continuationToken?):Promise<{continuationToken?:string;results:AuditEntry[]; }>
Defined in: packages/core/src/services/audit.model.ts:372
Audit entries of one object (Audit.Subject)
Allowed when the model's canAct(context, "audit", subject) is true. When the object
does not exist (deleted or never created), readPermission is required, otherwise 404.
Parameters
model
string
model identifier, e.g. WebdaSample/Post
key
unknown
primary key: scalar, object of key fields, or canonical JSON array
limit?
number
page size
continuationToken?
string
token of the previous page
Returns
Promise<{ continuationToken?: string; results: AuditEntry[]; }>
the page of entries
toJSON()
toJSON():
string
Defined in: packages/core/src/services/service.ts:452
Prevent service to be serialized
Returns
string
the result
Inherited from
toString()
toString():
string
Defined in: packages/core/src/services/service.ts:225
Return service representation
Returns
string
the result
Inherited from
unsubscribe()
protectedunsubscribe():void
Defined in: packages/core/src/services/audit.model.ts:199
Remove the core event listeners
Returns
void