| title | Changelog |
|---|
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
During our beta rollout, minor updates in the semantic versioning represent breaking changes.
- Update to namespace assignment and
- Improved
idsystem - Allow maps/objects to be passed into collection functions
- Integration with libp2p
- Ethereum bridge
- Added additional encryption algorithems:
- aes-cbc (symmetric encryption)
- secp256k1 (Ethereum signing/asymmetric encryption)
- x25519-xsalsa20-poly1305 (MetaMask encryption)
- Utility fns should now be imported by algorithm name: e.g
import { aescbc, secp256k1, x25519xsalsa20poly1305 } from '@polybase/util'
- Default export of encryption functions (these fns can now be imported using
the algorithm specific import - see above):
import { asymmetricEncrypt, asymmetricDecrypt } from '@polybase/client'import { encryptToHex, decryptFromHex } from '@polybase/client'import { asymmetricEncryptToHex, asymmetricDecryptFromHex } from '@polybase/client'import { sign } from '@polybase/client'
- Added symmetric encryption helpers to
@polybase/util:symmetricGenerateKey()symmetricDecryptFromHex()symmetricEncrypt()symmetricDecrypt()symmetricImportKey()
- Normalized asymmetric encryption helpers in
@polybase/util:encryptToHex()->asymmetricEncryptToHex()decryptFromHex()->asymmetricDecryptFromHex()
- Deprecated from
@polybase/util: encrypt()decrypt()
collection.doc()has been deprecated in favour ofcollection.record()on theCollectionclassDocclass has been deprecated in favour ofCollectionRecordclass- The following URL endpoints have been deprecated from our hosted service:
POST /v0/collections/{collectionId}/documentsreplaced byPOST /v0/collections/{collectionId}/recordsGET /v0/collections/{collectionId}/documentsreplaced byGET /v0/collections/{collectionId}/recordsGET /v0/collections/{collectionId}/documents/{recId}replaced byGET /v0/collections/{collectionId}/records/{recId}POST /v0/collections/{collectionId}/documents/{recId}/call/{function}replaced byPOST /v0/collections/{collectionId}/records/{recId}/call/{function}
- Nomenclature for a record/document within a collection has been changed from document -> record
- Error
reasoncodes returned from the server have been updated to the follows:record/not-foundindex/missing-indexindex/unique-constraint-violationconstructor/no-id-assignedfunction/invalidated-idfunction/not-foundfunction/invalid-argsfunction/invalid-callcollection/id-existscollection/invalid-idcollection/invalid-schema
- Tests for each of the user error codes
pk(publicKey) is no longer accepted as the final parameter of .call(functionName, args,pk)` and .create(args,pk)
- Signer function has new type specification:
type Signer = (data: string, req: Request) => Promise<SignerResponse|null>- Additional parameter
req: Requestis passed as the second parameter - If provided,
signer()is called for every request - You can return null on
Signerfunction if you do not want to provide a signature for a given request
- Additional parameter
- Dependencies updates
.applySchema()now upsert the provided code. If the collection does not exist, it is created, otherwise it is updated.
.create()can be called on a collection to create a new record - e.g.db.collection('HelloWorld').create(["id1"])- Changelog added to documentation
doc.set()- replaced by creating specific collection functions that can be called usingdoc.call("fn", args)doc.delete()- replaced byselfdestruct(), which should be called within a smart collection function- Field directives (e.g.
@max(),@min(), etc) have been removed
- The following URL endpoints have been deprecated from our hosted service:
GET /v0/collections/{collectionId}/recordsreplaced byGET /v0/collections/{collectionId}GET /v0/collections/{collectionId}/records/{recId}replaced byGET /v0/collections/{collectionId}/{recId}
The initial release of Polybase.