What This Adds In Cloud Code
- XML digest + signature pipeline in Cloud Code.
- Supports configurable canonicalization and digest algorithms.
- Useful for SOAP/security flows requiring signed XML envelopes.
Quick Start
js
const signer = require('signer');
const signedXml = signer(request.params.xml, {
ssl_cert: Nimbu.Site.env.get('XML_CERT'),
ssl_cert_key: Nimbu.Site.env.get('XML_PRIVATE_KEY')
}).digest('//Body').sign();API
| Function | Params | Returns | Notes |
|---|---|---|---|
signer(xml, options?) | XML string | SignerInstance | Factory default export. |
SignerInstance.digest(xpath, options?) | XPath + options | SignerInstance | Adds digest reference. |
SignerInstance.sign(options?) | sign options | string | Returns signed XML. Cert/key are configured on signer(xml, options). |
Practical Example
js
const signer = require('signer');
const signed = signer(request.params.soap_xml, {
ssl_cert: Nimbu.Site.env.get('SOAP_SIGNING_CERT'),
ssl_cert_key: Nimbu.Site.env.get('SOAP_SIGNING_PRIVATE_KEY'),
digest_algorithm: 'sha256'
})
.digest('//soap:Body')
.sign({ binary_security_token: true });Failure Modes & Gotchas
- Invalid certificate/key material breaks signing.
- Keep XML namespace and XPath expressions aligned.