Rekord akcióvizsgálati események egy szülői audit sink
Egy művelet az audit értékét szövegsablonra állíthatja. Sikeres befejezéskor a keretrendszer egy audit rekordot küld a DEF.onAudit(name, data, context) függvénynek. Az automatikus rekord az actions sinknevet használja, és tartalmazza a művelet azonosítóját. A művelet explicit módon is hívhatja a $.audit(message, type) függvényt; ez saját rekordot bocsát ki, és hordozhat olyan típust, mint az info.
A példa az audit sinket memóriabeli gyűjtőre cseréli, hogy megvizsgálhassuk a szerződését. Csak a nevet, a művelet azonosítóját, az üzenetet és a típust rögzíti. A keretrendszer kontextusadatokat és szerializált kérésadatokat is előkészít: egy valódi sinknek explicit szabályzat kell a titkokra, megőrzésre, hozzáférésre és hibákra. Az audit esemény nem bizonyíték arra, hogy egy üzleti tranzakció véglegesítődött; a műveletnek csak a tervezett írás sikere után szabad meghívnia a sikeres visszahívását.
Ebben a verzióban az automatikus audit esemény történik a sikeres cselekvési hívás utat követően. nem automatikusan regisztrálja a validációs hibákat vagy a kudarcokat.
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); });
};