Releases: hyperledger-archives/composer
v0.14.3
Composer V0.14.3
Hello and welcome to another Hyperledger Composer release. This release contains updates and fixes in the runtime, Playground and documentation - so it's well worth having a read through to see where your Composing experience is being enhanced.
Features
✨ #2465 restyles the Historian view so that the information is more consumable 🍖
✨ #2496 is essentially a bug fix, but has enough impact to warrant being declared as a feature. We now enable the persistence of invalid files within the Playground editor 😱 . The previous behaviour was to prevent any writing of invalid contents to the working model. We accepted that this was problematic if working with large business networks and essentially made refactoring of a complex business network impossible within Playground. Well .... not anymore 👍
Bug Fixes
🐞 #2478 gives the ability to perform 'between' filtering when filtering on resource identifiers
🐞 #2322 stops the overwrite of populated fields when selecting to include option properties in a Resource declaration in Playground
🐞 #2494 adds the runtime api documentation into the API Reference section of the main documentation
🐞 #2432 fixes a recursion issue within model definitions, so now it is possible to define (and use) a resource that contains itself, for example:
asset PurchaseOrderAsset identified by orderId {
o String orderId
o PurchaseOrderAsset[] subPurchaseOrders
}
🐞 #2521 re-introduces the default generation of an identifier in Playground when creating a Resource. We will not generate an identifier if there is a user placed restriction on it (ie a regex match requirement), but in all other cases you will have one provided for you.
Conga Comics
Already proving to be a popular aspect of the release, out resident artist @EdMoffatt has a fresh new addition to the expanding #CongaComics collection
Missed out on a Conga Comic, or want to catch up with them all? Fear not, you can view the complete Conga Comic collection at conga-comics
v0.14.2
Composer V0.14.2
Hello and welcome to another Composer release. There may be a slight Halloween theme here, but don't worry as there are no tricks (breaking changes) in this release, and a few treats in the form of features and bug fixes to assist in your Composing delight 👍
🔪 Features 🔪
👻 #2471 adds the CONTAINS operator to the query language, meaning that you can perform a query on Array contents. For instance, if you model file was to be of the form:
concept MyConcept {
o String value
}
asset TestAsset identified by assetId {
o String assetId
o String[] stringValues
o MyConcept conceptValue
o MyConcept[] conceptValues
}
Then a matching query file entry is:
query QED {
description: "Example CONTAINS Query"
statement:
SELECT org.acme.sample.TestAsset
WHERE (conceptValues CONTAINS (value == "pumpkin"))
}
Example queries might be:
- Query that an array of strings contains a single string:
SELECT org.acme.sample.TestAsset WHERE (stringValues CONTAINS "pumpkin")
- Query that an array of strings contains all of the elements in another array of strings:
SELECT org.acme.sample.TestAsset WHERE (stringValues CONTAINS ["pumpkin", "jello", "candycane"])
- Query that an array of concepts matches a sub-query:
SELECT org.acme.sample.TestAsset WHERE (conceptValues CONTAINS (value == "pumpkin"))
🕸 Bug Fixes 🕸
A few bug fixes this week within Playground
🕷 #2451 Updates the empty registry image to one that is compatible across all browsers
🕷 #2441 Makes the Playground version check occur sooner, so that a local storage clear can be triggered
🕷 #2452 Aligns the delete modals to be the same, irrespective of what you are deleting
🦇 Conga Comics 🦇
For your viewing pleasure, our resident artist @EdMoffatt has composed a Halloween special conga comic ... but please do make sure you read the complete release notes!
Missed out on a Conga Comic, or want to catch up with them all? Fear not, you can view the complete Conga Comic collection at conga-comics
v0.14.1
Composer V0.14.1
Hello Composer fans, and welcome to another release. The focus this week has been on bug fixes, to help you create your business networks with maximum ease. No breaking changes, and a restriction on identity enrollment are key highlights, though feel free to read through the bug fixes to see what our Congas have been busy with this week.
Breaking changes
Following from last weeks big change, we are happy to inform you that there are no (intentional) breaking changes in this release. 👍
Features
✨ #2379 now restricts an identity to a single enrollment. Be careful - if you lose the crypto material, then you cannot automatically re-enroll the user 😱
Bug Fixes
🐝 #1699 Provides more guidance within error messages provided when passing factory objects that are not expected.
🐝 #2391 Prevents the automatic generation of model items that have a regex associated with them, to prevent the creation of objects that do not meet the regex criteria
🐝 #2392 Fixes a documentation issue where the copy button obscured text that you might have been wanting to copy
🐝 #2383 Enables the Empty Business Network to show the correct constituent parts ... which is mainly nothing.
🐝 #2372 Enables file name validation messages to be shown consistently across browsers
🐝 #2304 Enables the automatic addition of the business network name during import, don't worry - you can still change it, but it will remove an additional step for those keen to compose at warp speed.
🐝 #2405 Is a wealth of documentation edits, ensuring terminology consistency
Conga of the Week
With so many bug fixes, conga-of-the-week has to go to @awjh-ibm ... well done and keep conga-ing!
Conga Comics
Usual rules apply readers - the Conga Comic is reserved for those who have read the complete release notes, so if needed, head back up the page and read through!
v0.14.0
Composer V0.14.0
Hello and welcome to another Composer release. This one has some breaking changes, bug fixes and features, and of course the next in the Conga Comics series. There is a lot of information to follow, and we would urge you to read it all, in fact it might be worth getting a cup of tea before continuing ...
Breaking changes
Apologies, but some changes are being delivered in Composer v0.14.0 this week, which are likely to break some existing projects.
The first of these changes is the introduction of a business network administrator (see changes linked to #670 for details). For all previous releases of Composer, all digital certificates with admin
in the name (case insensitive) have had "privileged access" to the business network - essentially it acted as if the access control rules were disabled. Replacing this method with the business network administrator delivers an improved security model, but the changes are significant, and could break business network definitions that relied upon the old behaviour.
To make sure your Business Networks deploy successfully, be sure to expand the section below!
Learn how to deal with this change
What has changed and why?
In order to secure a business network at deployment time, the business network must now be bootstrapped with an initial set (at least one) of participants and identities that are able to interact with the business network after deployment. We are calling this initial set of participants the _business network administrators_; they have access to the business network after deployment and are responsible for on-boarding the other members of their organisations into the business network.We have provided a participant type that represents a business network administrator; this is included "out of the box" (as a system type) and you do not need to add it to your model files: org.hyperledger.composer.system.NetworkAdmin
.
Please note that NetworkAdmin
is not a super user, and has no special authority or access. It is a standard participant type, and is subject to the ACL rules as per any other participant type. This means that you must now update your permissions.acl
file to grant the NetworkAdmin
appropriate levels of access to the business network!
What do I need to do to my old BNAs?
Here's some handy ACL rules to get you going again. You must add them to your .acl file before you deploy your business network! All of our sample business networks have been updated to include these rules.rule NetworkAdminUser {
description: "Grant business network administrators full access to user resources"
participant: "org.hyperledger.composer.system.NetworkAdmin"
operation: ALL
resource: "**"
action: ALLOW
}
rule NetworkAdminSystem {
description: "Grant business network administrators full access to system resources"
participant: "org.hyperledger.composer.system.NetworkAdmin"
operation: ALL
resource: "org.hyperledger.composer.system.**"
action: ALLOW
}
If you're deploying via Playground, you should be ok; in the case you have some very restrictive Access Control rules, you may also need to add the above ACL rules in and Update your network before using the admin ID to issue other identities.
How do I deploy BNAs?
There are two ways for specifying the business network administrators on the command line:- Note: This option is the one most users will want! When running
composer network deploy
andcomposer network start
, in addition to the normal parameters you would use, you should also include-A admin -S
to bind the admin identity as a network admin participant. If you don't do this, the identity you use to deploy the business network, usuallyPeerAdmin
, will be bound into the business network as a business network administrator, and this is probably not what you want. - Note: This option may be required for some more advanced use cases. Specify certificates or enrollment IDs on the command line (use
-c
or-i
withcomposer network deploy
) when deploying the business network. You can specify 1 or more certificates or enrollment IDs and they will be bound to business network administrator participants during deployment. After the business network is deployed, you will be able to access the business network using those identities. If you are obtaining IDs or certificates from a Fabric CA (and therefore outside of Composer), this may be your preferred option.
If you're deploying via Playground, you should automatically get the same effect as doing option (1), and we'll be extending the UI by adding the option to do option (2) in a later release!
You can read about these updates in the documentation here: https://hyperledger.github.io/composer/business-network/bnd-deploy.html
🐼 Hey, did you expand the section above? Did you?! You really should!🙏🏽 Ok, if you promise you read it, you can carry on...
There are changes to the client-runtime 'protocol' for Set and Get Logging calls, as well as the reset business network
. These are all represented as system transactions. As they are now transactions they become subject to ACL control and will be visible through the Historian.
The BusinessNetworkCardStore API has changed, it is unlikely that you were using this right now, but we figure it's worth giving you a heads up on the change 😉
Finally, apologies again for breaking changes: we try not to do this if we can at all avoid it, but in this case a significant re-work was required for the significant pay-off of a more robust security model around network deployment. We appreciate that this change may be disruptive, and in better news this should be one of the last few breaking changes that we plan on delivering before looking to deliver a "v1.0" release 🤞
Features
To try and offset the disappointment of breaking changes, we are including some features in this release:
✨ #2229 Delivers the first of many supporting aspects for filter support within query. Check out our docs for more information 👍
✨ #2302 Binds business network administrators at network deploy/start time. This is one of the breaking changes described above...but it is also a pretty neat feature
✨ #2281 Introduces a 'sample business network card' to the online Playground. This should help the first-time-conga experience. This card will give you direct access to the basic-sample-network, but will be replaced by any user defined business network cards.
✨ #2342 Gives you the ability to search the API docs that are now found off the left hand navigation of the main documentation. The deprecated API documentation and search is still available for a limited time whilst we work on increasing the user experience of the integrated APIs.
Bug Fixes
Features and bug fixes ... sometimes we do spoil you.
🐛 #2297 enables the editing of the package.json within Playground.
🐛 #2307 fixes the code syntax highlighting when changing from readme -> code edit
🐛 #2273 fixes the display of the constituent parts of a business network that are displayed in Playground when basing a network off of a sample
Conga Comics
Ok, admit it, you skipped straight here didn't you? Well OK, but please remember to go back up and read the full release notes and pay particular attention to the breaking changes that have been introduced in this release.
So, for your viewing pleasure, our resident artist @EdMoffatt has composed the second conga comic ...
Missed out on a Conga Comic, or want to catch up with them all? Fear not, you can view the complete Conga Comic collection at conga-comics
v0.13.2
Welcome to another Composer release! The Composer congas have been busy this week, working on making your Composer experience a delight.
🌟 Today marks a special day - not only are we making a new Composer release, we're publishing the first of many Conga Comics - so remember to keep visiting not only to keep up to date with new release features, but to see what the Congas are doing this week! 🌟
💔 Breaking Changes 💔
No breaking changes this week - only features and finesse! If you happen to be broken by something, please raise a GitHub issue and we will allocate the 🐧 and work to resolve your issue
✨ Features ✨
A fun(ctional) release this week, with features in the runtime, Playground and documentation
- #2263 Now permits ACL wildcards at the root level - which makes specifying the ACL access rules much easier... but be careful
resource: "**"
will give access to everything! - #2268 adds API documentation into the main documentation resource pages - however did you cope before?!
- #2288 enables the creation of a business network card through importing certificates from disc - making your card creation process 72.4% more sustainable
🌵 Known Issues 🌵
- With the change to the API documentation, we have temporarily lost the ability to perform a search - this is being worked on, but a temporary search facility is available here: searchAPI
🐛 Bug Fixes 🐛
The bug offensive continues this week, with bug kill notifications going out for:
- #2285 Enabling UI Modals to scroll (great for those Composing with a small screen)
- #2291 We now prevent the addition of invalid business network cards to those available for use in Playground
- #2289 Prevents a default transition to the Historian registry if you are not already on that page
🆕 Conga Comics 🆕
A new and inspired section for the release notes, and likely to become a reason to read these release notes ... but no cheating, it doesn't count if you skip to the bottom just for this segment. So, deep breath in, drum roll, and scroll down for the first edition of 🎉 Conga Comics 🎉 courtesy of @EdMoffatt
v0.13.1
Welcome to Congaday everybody! Feel free to turn up the music and dance around the office for a minute or two, but please remember to come back and finish reading the release notes ...
Excellent, you're back. So what do we have in store for you within v0.13.1? This weeks theme has mainly been 'consolidation', with a feature drop here and there.
We are working our way through the issues, and won't be satisfied until they are all resolved so that you have the best possible Composing experience. In fact, I'd go so far as to say that we're never gonna give you up, never gonna let you down, never gonna run around and desert you.
💔 Breaking Changes 💔
This release should contain no breaking changes, unless you were relying on a defect to do something that you shouldn't be able to do...
🆕 Features 🆕
✨ #2185 Part feature, part fix. Either way from now on, when generating 'random' data, you are no longer at the whims of a sample word generator; you can now generate sample data without worrying that something embarrassing might appear. Unless of course Lorem-ipsum is in fact a string of latin words that nobody has ever bothered to translate...
✨ #2169 Adds support for model decorators. This means that it is now possible to decorate the elements of a Composer model with metadata. Even more information on this is available in the issue it closed (#2157) and within the documentation delivered with the PR 👍
📖 Documentation Updates 📖
As much as we love to claim 'nobody reads the docs', we know you do. And in light of that (and the fact we're never gonna give you up either) this section is dedicated to you.
- #2241 is a veritable encyclopaedia of documentation updates, that have updated documentation around CLI commands, Transaction Processor Functions, supported dependancy versions, tutorial updates .. and more! Please remember to raise an issue if you find any out of date documentation, and we'll get onto the updating 👍
- #2169 Add documentation for model decorators
- #2168 marks the return of the side scrollbar, welcome back
🐛 Bug Fixes 🐛
This week the team put on their 'Rentokill' outfits, rolled up their sleeves, and launched an issue offensive.
- #2171 fixes the file validation message, so now you can relax and be confident in your validation bliss.
- #2198 fixes the Loopback visitor, which was visiting too many times.
- #2212 fixes the cache clearing in Playground to also clear IDCard data
- #2216 delivers a fix for something. Not sure what, because somehow it was accepted without being linked to an issue. 🌵
- #2224 fixes an enrollemetn typo in the rest-server and closes once and for all the Ascii art removal issue.
- #2215 now officially earns @mbwhite some kind of stuffed toy for delivering without linking to issues. It updates the business network archive file creation. I'm sure it was for a good reason 🤷♂️
- #2236 now lets you define a default Double value as an Asset attribute. 👍
- #2240 addresses an issue relating to wildcard imports from multiple namespaces. 😱
🎺 Shout Outs 🎺
Well, after some thought we need to make two shout outs:
🎉 @dselman for delivering the ability to add model decorators to models. Extra special credit for linking to the issue (user story) that it closed
🎉 @EllisHenderson for being top-top-20 hit-person. Kudos - you get first dibs on the coffee this morning.
v0.13.0
Hello and welcome to the latest Composer release. Release 0.13.0 ... why 13? Mainly because it comes after 12. It might be an irrational number, but there is nothing irrational with the contents of the release 😝
Quite a bit of churn in the code base this week, with PRs focussing on increasing test coverage, zapping bugs and deleting deprecated items. So ... join me in a count down for a run down of this weeks release ...
Composer, we have have problem. Well, you will if you try to use the deprecated features that have been removed.
💥 #2026 Changes the Historian API
💥 #2118 Changes the IDCard API
💥 #2179 Removes deprecated API items from composer-client and composer-runtime, removing the registry QueryExecutor
If you have been using any of the above APIs/items, it would be worth looking into the code changes within the PRs ... if you have already moved from the deprecated APIs, then congratulations - you are ahead of the curve!
🐛 Bug Fixes 🐛
We launched an effort to reduce the issue backlog this week, and have managed
- @jt-nti wins again this week with the least amount of code change required to fix an issue in #2148, which required a single character change. It almost seems wasteful to run the complete regression suite against it, but we did anyhow ... because that is the standard.
- #2152 prevents you form issuing an ID to a participant that doesn't exist
- #2175 prevents errors being thrown by the network list command if a registry does not exist
- #2184 resolves issues relating to REST Server logout and access token readability
📖 Documentation Updates 📖
Documentation updates and additions this week, which should be enough to satisfy all your documentation needs
- #2133 is geared towards anyone with a Mac wanting to get started with Composer ... a very handy pre-req guide.
- #2174 updates the ID Card information (well, we changed the API so it is only fair that we explain it)
- #2183 contains an update for the Historian (the irony of a historian being documented does not escape us, but again ... we changed the API and the documentation reflects this)
- #2189 is geared towards the audiophobes, who like to watch video demonstrations in absolute silence. Can you hear that? Exactly ... nothing but silence.
🎺 Shout Outs 🎺
Big shout out to @caroline-church, who is now an official Hyperledger Composer maintainer 🔧 ... so official that it is now immortalised into the GitHub history with @dselman and @sstone1 - right here
v0.12.2
Hello Composer fans! This week we are releasing a fresh and shiny Hyperledger Composer complete with bug fixes and features for your Composing delight.
Really good to see more Pull Requests from external contributors - please keep up the contributing as we cherish each and every one of you 🤗
🐛 Bug Fixes 🐛
- Most ironic bug fix award goes to @jt-nti with #2085 ... which was a link fix in the readme thaat linked to ...wait for it ... how to raise issues.
- We now have 100% less annoying ascii text when running the composer-rest-server #1965. Not strictly speaking a bug fix, but we know it bugged people ... not anymore!
- For those of you who like to intentionally break things 😱 you will be happy to see #2113 that will stop errors popping up in the Historian when you hit the ESC key. I mean really, why would you hit the ESC key anyhow!?
🆕 Features 🆕
Ah, the part everyone skips to. The part where people are probably not even reading this, because they have immediately skipped to the bullet point list below. Well, for those who are reading this bit - thanks! The shiny new features added into this weeks release are ... drum roll please ...
✨ Within Playground, it is now possible to generate an ID Card using certificates, which is really quite useful #1985. This is likely to be the second most favoured route for ID Card creation, though we would still point at export/import being the preffered method.
✨ Angular support for Enums is now enabled in the Angular generator, thanks to a very kind external contribution 👍
✨ Always wanted to create a role (PeerAdmin/ChannelAdmin) when creating an ID Card? Well, good news ... now you can, all thanks to #2113. This has added a 'roles' section in the ID Card creation. Why are you still reading this? Go and try it out!
✨ Issuing IDs in Playground? Well, this one is directed at you #2120: we have aligned the issuing of IDs with the ID Card concept, making it easier to export or use an ID Card at the point of creation.
🎉 Shout Outs 🎉
Firstly a massive thumbs up to all our contributors, this week has seen some really good contributions, and we'd like to thank you
👍 @ki0apa for removing the 1980s ascii text in composer-rest-server
👍 @ilfrich for adding Enum support in the Angular generator
👍 @harsha544 for making ppc64le docker images available
v0.12.1
Happy release day Composer fans! This week has been focussed on smoothing out the ID Card experience and ensuring all documentation and tutorials are up to date.
🐛 Bug Fixes 🐛
We have been working through all issues, and have managed to address:
- PRs #2054, #2053, #2063 relate to items in the Playground ID Cards Nitpick item #2044, which is a particularly picky issue. We still have items left to address and we are working through them one byte at a time (see what I did there?)
- PR #2046 has re-baked the initial Playground specific documentation section
- PR #1980 has sifted through the documentation and tutorials to help make all recipes easier to follow
🎉 External Contributions 🎉
Pull requests from external contributors are on the increase 👍 , and we are aware that there is a backlog of PRs from the community for us to look at and incorporate - we appreciate your patience as we get to the review stage of these items
v0.12.0
Welcome to a fresh new release of Hyperledger Composer, with what can only be described as substantial changes to Hyperledger Fabric support and the Playground UI. Brace yourself, breaking changes are coming (if the version bump hadn't given it away).
💥 Breaking changes 💥
The breaking changes in this release are pretty significant, we have removed legacy functionality and changed the user experience in the UI.
- Hyperledger Fabric V0.6 support has been completely removed. It is gone. You will not be able to connect to or interact with V0.6 any more.
- The Playground now features ID Cards, for more on this please see the features section
- The REST server security mode (
-S true
) has been replaced, for more on this please see the features section
🆕 New Features 🆕
There are significant new features in this release:
✨ The introduction of ID cards to the Playground, which completely transforms the user experience. This is held within #902, and in a nutshell will permit the deployment of multiple business networks to a connection profile, and the ability to connect through multiple connection profiles. See, we thought you would like it - for more of an introduction to this please see the updated documentation and the newly updated Playground tutorial
✨ While we were busy introducing ID Cards, we also changed the path through which you create a new business network. It is almost too much to take in - just as well we updated the tutorial!
✨ We have introduced a Playground section within the documentation, and will continue to expand this with Playground specific information.
✨ We now support Hyperledger Fabric V1.0.1 ... the newest and most delicious flavour of Fabric.
✨ The REST server security mode (-S true
) has been split into two for more flexibility in deployment scenarios; authentication only (-a true
) and multi-user mode (-m true
). Additionally, the access token is now shown in the REST API explorer
✨ The REST server documentation has been improved, and now describes how to use events, how to use authentication and multi-user mode, and how to authenticate to the REST API outside of a web browser.
☂️ Known Issues ☂️
- The most widely accepted known issue is contained within #1498 and this is being worked on
- #2048 contains a list of 'nitpick' items for the Playground that we will be looking at, which are the known niggles that are present
- #2045 contains a list of 'nitpick' items for the Documentation that we will be looking at, which are related to getting the correct information to you.
🐛 Bug fixes 🐛
- We are now validating query files once opened, quite useful to see your errors (#1679)
- We are now showing input transactions in the Historian (#1850)
- TypeScript Generation does not Output Imports when Models Import Namespaces from Other Files #1756
- registry manager breaks sequential promise chain on add #2021
- Composer Archive List CLI command fails if not given correct args #1800
- Remove per-module version printout from CLI commands #1925
- Unable to query transactions with CQL language #1888
🎉 Shoutouts to new contributors! 🎉
Massive shout outs to:
- @neeravarora for updating our coding guidelines file(#1864), I think we might have to figure out some kind of frequent flyer miles for you ...
- @ScottMorris for fixing the TypeScript namespace import generation (#1757)
- @royshouvik for updating our cucumber tests to use the correct identity (#2034)
- @ki0apa for cleaning up the version output (#1989)
- @EllisHenderson - firstly welcome to the team 🎉 and thank you for the first of many contributions (#2024)