Zaznamenajte udalosti auditu akcie pomocou natívnej zásuvky auditu
Akcia môže nastaviť audit na textovú šablónu. Po úspešnom dokončení framework pošle auditný záznam do DEF.onAudit(name, data, context). Automatický záznam používa názov sinku actions a obsahuje id akcie. Akcia môže tiež explicitne zavolať $.audit(message, type); to vyšle vlastný záznam a môže niesť typ ako info.
Príklad nahrádza auditný sink zberačom v pamäti, aby sme mohli preskúmať jeho zmluvu. Zaznamenáva iba názov, id akcie, správu a typ. Framework pripravuje aj kontextové dáta a serializované dáta požiadavky: skutočný sink potrebuje explicitnú politiku pre tajomstvá, uchovávanie, prístup a zlyhania. Auditná udalosť nie je dôkazom, že sa obchodná transakcia potvrdila; akcia by mala zavolať svoj callback úspechu až po úspechu zamýšľaného zápisu.
V tejto verzii sa automatická auditná udalosť vyskytuje po úspešnej akčnej ceste. nezaznamenáva automaticky neúspechy validácie alebo zlyhané akcie.
MAIN.auditEvents = [];
DEF.onAudit = function(name, data) {
MAIN.auditEvents.push({ sink: name || null, action: data.action, message: data.message || '', type: data.type || null });
};
NEWACTION('AuditExample|save', {
input: '*name:String',
audit: 'Saved the example',
action: function($) {
$.callback({ ok: true });
}
});
NEWACTION('AuditExample|explicit', {
action: function($) {
$.audit('Explicit example event', 'info');
$.success();
}
});
NEWACTION('AuditExample|fail', {
audit: 'This must not become a success event',
action: function($) {
$.invalid(409);
}
});exports.install = function() {
ROUTE('POST /save/ --> *AuditExample|save');
ROUTE('POST /explicit/ --> *AuditExample|explicit');
ROUTE('POST /fail/ --> *AuditExample|fail');
ROUTE('GET /events/', function($) { $.json(MAIN.auditEvents); });
};