Card Issuing
Card Reveal SDK Changelog
What changed in each version of Column's card reveal SDKs, newest first. The web
(@column-na/card-reveal) and React Native (@column-na/card-reveal-react-native) SDKs release together at the same
version. Each entry lists breaking changes and required actions first. See
SDK Versions for which versions Column supports.
0.13.0
Action required: none.
- React bindings:
<CardRevealProvider>with<CardRevealSlot>children, or theuseCardReveal()hook, runs the whole reveal:prepareReveal(), your server's token, the reveal andunmounton cleanup.useCardRevealState()reports{ status, error, retry }. On the web they're at@column-na/card-reveal/react(React 18 or later); in React Native they're exported from the package. See React. - Hide, show and auto-hide: a reveal has
hide()andshow(),hidden: truestarts it masked, andautoHideMs(withonAutoHide) unmounts it a set time afterready. See Hide, Show and Copy. - Copy (web):
copyablemakes a field a copy button inside Column's frame. The value is copied from inside the frame; your page gets onlyonCopy({ field, copied }). In React Native,copyableandonCopythrowinvalid_options; useselectableonCardRevealText. discard(): a prepared reveal can drop its key without revealing, and on the web removes its hidden frame.
0.12.0
Action required: none, unless your styles use !important, font-synthesis or text-decoration-skip-ink.
- Web styles:
!importantis removed from your style declarations (the value is kept), andfont-synthesisandtext-decoration-skip-inkare refused.
0.11.0
Action required: if you embed a font, check that it still loads.
- Web styles: each glyph of an embedded font may have at most 600 points and 30 contours, with a bounded outline
length. Ordinary text fonts are well within these limits. A font that doesn't pass is dropped, and the text uses the
next font in your
font-familylist.
0.10.0
Action required: if you embed a font, re-export it as plain TrueType.
- Web styles: an embedded
@font-facefont must be plain, unhinted TrueType (.ttf) with simple glyphs and no layout, colour or variation tables, at most 64 KB. WOFF, WOFF2 and OpenType CFF fonts are dropped. The web SDK's README↗ shows how to prepare one with fontTools. - Web styles: vendor-prefixed properties (
-webkit-transform,-webkit-filterand similar) are handled like the properties they alias.
0.9.0
Action required: if you style fields, check the limits below.
- Web styles:
font-sizeis capped at 96px;text-shadowandbox-shadowkeep at most two shadows with a blur of at most 8px;filter,backdrop-filter,transform,zoom, thefontshorthand,-webkit-text-stroke,text-emphasis,mask,paint-orderandwill-changeare refused. - Web hosted script: the
integrityattribute is read the way browsers read it. A hash followed by an invisible character (such as a non-breaking space pasted from a document) is now refused withintegrity_required. - React Native: a stronger check of the random source before each reveal key.
0.8.0
Action required: if your styles load fonts from a URL, embed them instead.
- Web styles: an
@font-facesrcmust embed the font as a base64data:URL or name an installed font withlocal(...); a font URL is dropped. A style may be up to 256 KB.::first-letterand::first-lineare refused. - Web hosted script: the
integrityattribute must hold asha256-,sha384-orsha512-hash. Module scripts (type="module") aren't supported. - React Native: the SDK refuses a broken random source (all zeros, repeating bytes) with
reveal_failed.
0.7.0
Breaking. Action required:
- Call
prepareReveal()before every reveal, and mint each reveal token with itskeyThumbprintasreveal_key_thumbprint. Column now requires every reveal token to be bound to a key, so versions before 0.7.0 no longer reveal cards. - Rename
cvvtocvv2infieldsandfieldStyles.cvvthrowsinvalid_options.
Also new:
- PIN reveal: add
pintofieldsto show a debit card's PIN. See Reveal a PIN. - Only the fields you show are returned by Column, and each reveal is recorded with the fields it returned.
CardRevealErrorhasapiCode, Column's API error code, when there is one.
0.6.0
Action required: allow https://reveal.column.com in frame-src for sandbox as well as live.
- Web: sandbox reveals render in Column's reveal frame, like live. Your page no longer needs a
connect-srcentry for the SDK.sandboxBaseUrlmust behttps://api.column.comor plainhttp://localhost/http://127.0.0.1.
0.5.0
Action required: update your Content Security Policy, and on React Native install
react-native-get-random-values.
- Web: live reveals render in Column's reveal frame at
https://reveal.column.com, fetching card details from Column encrypted end to end. Allowhttps://reveal.column.cominframe-src, and remove the previous vendor's origins. - React Native: reveals call Column directly, encrypted end to end to a one-time key the SDK makes. Import
react-native-get-random-valuesonce at the top of your app's entry file.