Releases: microsoft/CCF
Releases · microsoft/CCF
Release list
5.0.0-rc0
Added
- More public namespaces have been moved under
::ccf ::dsis nowccf::ds::siphashis nowccf::siphash::threadingis nowccf::threading, andccf/ds/thread_ids.hhas moved toccf/threading/thread_ids.h::consensusis nowccf::consensus::tlsis nowccf::tls::httpis nowccf::http::nonstdis nowccf::nonstd::cryptois nowccf::crypto::kvis nowccf::kv::loggeris nowccf::logger::ccfappis now::ccf- The
programmabilitysample app now demonstrates how applications can define their own extensions, creating bindings between C++ and JS state, and allowing JS endpoints to call functions implemented in C++. - Introduce
DynamicJSEndpointRegistry::record_action_for_audit_v1andDynamicJSEndpointRegistry::check_action_not_replayed_v1to allow an application making use of the programmability feature to easily implement auditability, and protect users allowed to update the application against replay attacks (#6285). - Endpoints now support a
ToBackupredirection strategy, for requests which should never be executed on a primary. These must also be read-only. These are configured similar toToPrimaryendpoints, with ato_backupobject (specifying by-role or statically-addressed targets) in each node's configuration. - Introduced
ccf::historical::read_only_adapter_v4andccf::historical::read_write_adapter_v4. Users are now capable of passing a custom error handler to the adapter to customise RPC responses for internal historical queries errors, which are listed inccf::historical::HistoricalQueryErrorCodeenum.
Changed
- Updated Open Enclave to 0.19.7.
- Containers are now published to the GitHub Container Registry. The platform has moved from the tag to the image name, to enable meaningful usage of GitHub attestation, and the tag now matches the git tag used to cut the release. For example, the SGX Development container for this release is
ghcr.io/microsoft/ccf/app/dev/sgx:ccf-5.0.0-rc0.
Deprecated
ccf::historical::adapter_v3becomes deprecated in favour of_v4version.
Removed
- Removed the existing metrics endpoint and API (
GET /api/metrics,get_metrics_v1). Stats for request execution can instead be gathered by overriding theEndpointRegistry::handle_event_request_completed()method. - Removed automatic msgpack support from JSON endpoint adapters, and related
include/ccf/serdes.hfile.
4.0.19
4.0.18
5.0.0-dev18
Added
- Added TypeScript
TypedKvSetandccfapp.typedKv<K>to facilitate set handling from application code. - Added support for UVM endorsements signed with EC keys (#6231).
- Updated Open Enclave to 0.19.6.
Removed
- Removed unused
openenclave.verifyOpenEnclaveEvidenceAPI from JS/TS
Changed
- Added token.iss claim validation to JWT authentication (#5809). Must-knows:
- Supports both the OpenID requirements and the Entra specification of it.
- All keys fetched after the upgrade will not work against tokens missing the 'iss' claim if the issuer has been specified in the .well-known/openid-configuration/.
- Due to an internal schema change, networks that are in the process of upgrading to this version may see inconsistent authorization behaviour while the network contains nodes of different versions (depending which node executes the auto-refresh, any nodes on the other version will not use any newly provided keys). We recommend a full upgrade to this version, removing any nodes on prior versions, followed by a key and issuer refresh.
- A future release will remove the old tables entirely. Until then, some redundant state will be retained in the ledger. This is tracked in #6222.
MCR Docker Images: App Development, C++ Runtime, TypeScript/JavaScript Runtime
5.0.0-dev17
Added
- Moved JS registry to public header
ccf/js/registry.h. Apps should subclassccf::js::DynamicJSEndpointRegistryto get similar behaviour to the existing JS Generic app.
MCR Docker Images: App Development, C++ Runtime, TypeScript/JavaScript Runtime
4.0.17
5.0.0-dev16
Added
- Reusable functionality for creating an in-enclave JS interpreter has been added to the public C++ API. Applications should subclass
CustomJSEndpointRegistryto get similar behaviour to the existing JS Generic app.
MCR Docker Images: App Development, C++ Runtime, TypeScript/JavaScript Runtime
5.0.0-dev15
Added
- CCF now supports a mode where HTTP redirect responses are returned, rather than relying on internal forwarding. See docs for description of redirection behaviour and migration instructions.
- Authentication policies can now be conjoined (AND) together, in addition to the previous disjoint (OR) behaviour. The new
ccf::AllOfAuthnPolicytakes a collection of other policies, all of which must be true for this auth policy to pass. In JS, this can be configured in theapp.jsonas"authn_policies": [{ "all_of": ["policy_a", "policy_b"] }].
Changed
proposalIdis now passed toresolve(proposal, proposerId, votes, proposalId), allowing proposals to consider other pending proposals in their resolution process. (#5995)- The current state of an accepted proposal is written to the KV so that it can be accessed in the constitution's
apply(proposal, proposalId)function (#6114).
MCR Docker Images: App Development, C++ Runtime, TypeScript/JavaScript Runtime
4.0.16
5.0.0-dev14
Added
- Added a
ccfapp.checkedJsonconverter to the CCF TypeScript package, which will raise errors when given objects which cannot be roundtrip-converted through JSON (currentlyMapandDate). There is a slight cost to checking this on each instance duringencode, so the behaviour is opt-in (not directly replacingccfapp.json), but it is recommended that most tables update to use this converter.
Removed
- The
scurl.shscript has been removed. With #5137 removing support for HTTP signed requests, it is no longer needed.
MCR Docker Images: App Development, C++ Runtime, TypeScript/JavaScript Runtime