Skip to content
This repository has been archived by the owner on Mar 8, 2020. It is now read-only.

Releases: hyperledger-archives/composer

v0.11.2

10 Aug 14:56
Compare
Choose a tag to compare
v0.11.2 Pre-release
Pre-release

No major changes this week - focus has been on cutting through the issue backlog 🔪 . If there is an issue that you would like us to try and prioritize, please let us know!

Breaking changes

Why would we break things?! 💔

There should be no breaking changes in this release, should you prove us wrong, please raise a GitHub issue and we will allocate the penguin as appropriate. 🐧

Bug fixes

⭐ Documentation updates throughout tutorials and reference guides
⭐ CLI Command fixes for apparent code hang (#1803)
⭐ Javascript parser update to prevent multiple transaction running when comments included (#1703)
⭐ Handling a user trying to remove an identity that has not been imported into wallet within Playground (#1778)

Shoutouts to new contributors!

Massive shout outs to:
🎉 @harrika1982 for fixing broken links in the REST server documentation

v0.11.1

07 Aug 13:02
Compare
Choose a tag to compare
v0.11.1 Pre-release
Pre-release

There have been lots of feedback recently on some issues with newer releases of composer, so we have decided to provide an interim fix release to address some of these as they have been causing concern. The following have been fixed:
⭐️ https://github.com/hyperledger/composer/issues/1654 Composer Playground does not update list of assets in Test pane after a deploy
⭐️ https://github.com/hyperledger/composer/issues/1765 Composer identity import broken in v0.10.1 and v0.11.0
⭐️ https://github.com/hyperledger/composer/issues/1748 Unable to view Historian registry in Safari browser
⭐️ https://github.com/hyperledger/composer/issues/1720 Playground "Export" of BNA file does not work in Microsoft Edge Browser (kudos to @prasoc for this fix)

v0.11.0

03 Aug 17:50
Compare
Choose a tag to compare
v0.11.0 Pre-release
Pre-release

This week the elves have been busy working on the runtime, playground and documentation, delivering fixes and features for your composing delight - we hope you like them!

Breaking changes

Why would we break things?! 💔 Well OK, we try to only deliberately break things, and this week we are deliberately breaking things with the introduction of the (spoiler alert) Historian. The Historian not changes the way Transactions are viewed in Playground, but also changes the way the client talks to the runtime.

⚠️ The use of Hyperleger Fabric 0.6 is now deprecated, we will be working to remove all code support for Hyperledger Fabric 0.6 within Composer and consequently break anybody still working on that level.

Should you find any unintentional breaks, please raise a GitHub issue so that we can fix it, and play pass-the-penguin 🐧

Known issues

💥 #1745 Must deploy twice to see new asset registries

If you add a new asset or participant to a business network definition and deploy it in the playground, the new registry will not appear on the Test tab. For example, you will not see new asset or participant registries when following the Playground tutorial. This problem also occurs via the command line.

Workaround: make any change to the business network definition, and deploy again. The new registry should appear after the second deploy.

💥 #1748 Unable to view historian registry in Safari browser

It is currently not possible to view the historian records if using the Safari browser.

Workaround: use alternative browser until #1748 has been fixed.

Features

🏆 Historian. Not the type of historian that likes books, but the type that transforms the way you can inspect all transactions that have occurred. The Historian is a registry that is populated with HistorianRecords when a transaction is submitted. This allows history to be queried and maintained of changes to the assets in a business network, and which participants and identities are involved. This is quite a visible change within Playground, as it replaces the Transactions view to be the Historian Registry. Historian is documented in our reference guide - please read it to find out more!

🏆 Want to upgrade deployed business networks to use a new micro version? Well good news - you can! The new composer network upgrade will enable micro version upgrades.

🏆 Playground now enables addition of query and acl files via the "Add File" button, which removes the requirement to have an existing file to import from disc.

🏆 Documentation has been worked on to include:

  • Tutorials on using query
  • Reference documentation for Historian
  • HTTPS/TLS support for the REST server
  • Identity management commands within the CLI
  • CA descriptions under connection profiles

🏆 For the test hounds among us, you will be delighted to know that our Cucumber tests now support primitive types - I know right. MIND. BLOWN.

Bug fixes

The superstar that is @davidkel found and fixed a memory leak issue in #1712 🥇

@jdp1g09 has been very busy fixing frustrating UI bugs in Playground - too many to list here, but we hope that your visual experience is enhanced by all the changes 🏅

Shoutouts to new contributors!

Sadly no shoutouts this week - feel free to pick up any issues that you find appealing 😉

v0.10.1

27 Jul 12:46
Compare
Choose a tag to compare
v0.10.1 Pre-release
Pre-release

No major changes this week - focus has been on enhancement of existing features.

Playground users will see their query files being validated and hopefully be able to find sample business networks a little easier since they are now being sorted for you.

If using events, then good news - event subscription has now been enabled within the loopback connector and using websockets in the REST server.

😄 A great week for contributors this week - thank you for your input to Hyperledger Composer 😄

Breaking changes

Why would we break things?! 💔

There should be no breaking changes in this release, should you prove us wrong, please raise a GitHub issue and we will allocate the penguin as appropriate. 🐧

Known issues

The ability to perform a composer network upgrade is currently documented but not yet possible from a CLI or API perspective, watch future releases for the ability to upgrade deployed business networks to use a new micro version.

Features

Addition of TLS support for the REST server (#1665)
Ability to edit readme files in playground (#1560)(#1574)
Enabling event subscription using WebSockets in the REST server (#1655)
Validation of query files (#1656)
Composer identity list command (#1642)
Sorting of sample networks for Playground import (#1542)

Bug fixes

Documentation and website fixes - we hope you like the result 🎉

Shoutouts to new contributors!

Massive shout outs to:

  • @prasoc for enabling edits to Readme files in Playground
  • @salmanbaset for network deploy output changes
  • @aietcn for uprgading dev dependancies
  • @shacshar for preventing the use of duplicate namespaces

Welcome to Hannah and Jocelyn to the Composer team - and thanks for bringing cake 🍰

v0.10.0

20 Jul 12:16
Compare
Choose a tag to compare
v0.10.0 Pre-release
Pre-release

Big changes around security this week, full support for Hyperledger Fabric configurations with multiple organisations, and the ability to drive queries from the Composer REST server ✨

We have introduced system level access control so that you can control who in your business network is allowed to perform "system" level tasks such as accessing registries, creating new registries, and managing identities within a business network! 🔒

We have also reworked the management of identities within a business network so that public key signatures are used for authentication rather than certificate common names, all identity operations are recorded in the transaction registry, and you can now bind existing identities to a participant. 🛂

We have started work on splitting the deployment of a business network into two commands, to better fit with the "install and instantiate" work that went into Hyperledger Fabric v1.0. Use composer runtime install to install the Composer runtime (Fabric install), and use composer network start to start a business network (Fabric instantiate). 💻

Finally, the Composer REST server now automatically creates REST APIs for all of the queries defined in a Composer query file. Each query has a GET method, and any parameters (_$paramName) can be specified using the query string. ❓

Breaking changes

⚠️ Support for Hyperledger Fabric v0.6 is now deprecated and will be completely removed in the next major version (v0.11.0). Information regarding this can be found in issue #1535 ⚠️

System level access control #722 adds access control enforcement to all data within a deployed business network, including registries and identity management. Access control rules must be defined for the new system types have been added into the org.hyperledger.composer.system namespace. In order to restore the "old behaviour", you can grant all access to everybody on these types:

rule SystemACL {
  description:  "System ACL to permit all access"
  participant: "org.hyperledger.composer.system.Participant"
  operation: ALL
  resource: "org.hyperledger.composer.system.**"
  action: ALLOW
}

However we strongly recommend that you define proper access control rules around the system types 😉

The composer identity revoke command now takes a unique identity identifier rather than the enrolment ID due to the changes in #1291.

Known issues

The LIMIT and SKIP clauses with parameters (LIMIT _$inputLimit or SKIP _$inputSkip) do not work in queries when using Hyperledger Fabric v1.0 due to a bug in Hyperledger Fabric that is being tracked in FAB-5369. The bug is not present in the embedded or web runtimes, and LIMIT and SKIP clauses with hardcoded values (LIMIT 5 or SKIP 10) work correctly.

The documentation for #1290 is not in place yet; you can bind identities using the composer identity bind command. The certificate provided must be in PEM format and must contain the lines ----BEGIN CERTIFICATE---- and ----END CERTIFICATE----.

Invalid SELECT expressions in Composer query files are not detected when editing Composer query filesi n the Composer Playground or VSCode, or when packaging Composer query files into a business network archive (BNA) file. Errors will only be reported when the business network archive is deployed.

Features

As a business network developer, I can enforce system level access control #722
As a user, identities are mapped to participants using public key signatures #1291
As a user, I can bind an existing identity to a participant #1290
As a user, I can view, issue, and revoke identities for participants in a business network #817
Rest server CLI should have a -v --version option #1576
As a network manager, I can install the Composer runtime on my Blockchain nodes #1292
As a network starter, I can start a business network in a consortium #1293
As a user, I want to perform complex queries when using the REST APIs #921

Bug fixes

Ensure Composer module version is consistent for releases #1559
prereqs-ubuntu.sh has been deleted, docs still refer to it #1587
Fix incorrectly compiled queries with dynamic limit/skip clauses #1597

Shoutouts to new contributors!

None this week!

v0.9.2

13 Jul 13:36
Compare
Choose a tag to compare
v0.9.2 Pre-release
Pre-release

We have upgraded the installers, tutorials, and tests to use the new Hyperledger Fabric v1.0 release! 🎉
Massive congratulations to everyone in the Hyperledger Fabric community for getting it out of the door 👍
We hope you are all enjoying some well earned 🍻 or 🍷

The Composer Playground now supports the adding and editing of query files, containing queries written in the Composer query language. You can execute queries using either the embedded, web, or HLFv1 runtimes 🔍

Other than that, it's been a busy week, but the other only commits suitable for this weeks release are minor bug fixes. Keep an eye out for some big changes soon with system ACLs, ID cards, and identity registry 👀

Known issues

None!

Breaking changes

None!

Features

As a user, I can work on query files in the playground #1332
Added footer to playground #1478
Move to Hyperledger Fabric v1.0.0 (npm dependencies, system tests) #1533

Bug fixes

Event data not displayed when specific event data emitted #1501
Enable complex queries against nested properties #1524
Remove double scroll bar #1527
Fix ability to issue identity to none existent participant #1526
Prevent identifying fields in transaction and event model (#1517) #1544

Shoutouts to new contributors!

None this week!

And finally, a shoutout to @AnastasiaPaterson who has left our team in the UK to return to her university studies - you may have never delivered any commits, but you contributed so much to the project in other ways, and we're an unorganised rabble without you! Best of luck for your final year 🎈

v0.9.1

06 Jul 12:29
Compare
Choose a tag to compare
v0.9.1 Pre-release
Pre-release

We have upgraded the installers, tutorials, and tests to use Hyperledger Fabric v1.0 RC1.
Hyperledger Fabric v1.0 beta 1 should still work OK as there are no API changes, but no promises 😉
If you update to the new Composer fabric dev server which is now at RC1 level you must re-run the createComposerProfile.sh this is due to a change in the name of the CA Server and also a change to the channel name.

Dynamic runtime/chaincode logging, endorsement policies, and the ability to specify an affiliation when issuing an identity are all now supported 🎈

We have changed the sample importer in the Playground to download samples from npm, rather than GitHub, which helps us better handle versioning between Composer and the samples, and removes the need to authenticate with GitHub to try out the samples 🎉

You can now view events in Playground after submitting a transaction 🍿

Finally, we've made some updates to ACLs around conditions. JavaScript conditions can now refer to functions in a JavaScript file, and relationships are automatically resolved, allowing for more powerful ACL rules 🔑

Known issues

None!

Breaking changes

None!

Features

upgrade connector and system tests to HLF V1.0 RC1 #1433
dynamic logging and removal of force #1429
Import samples from npm #1444
Allow ACL rule conditions to call utility functions #1459
Feat(v1): Support Endorsement Policies in the Command Line #1466
Allow ACL rules to resolve and navigate relationships #1468
Updated event notifications in playground #1394
feat(v1): Support connector specific options on identity issue #1476

Bug fixes

Fix importing files via browse #1440
Fix adding invalid model files #1441
In a transaction function, console.log does not give any output #1009

Shoutouts to new contributors!

@damorton for fixing a typo in #1422
@doowb for fixing some links in #1469
@kokifpen for fixing some typos and links in #1470

And finally, a shoutout to @Jakeeyturner who has left our team in the UK to return to his university studies - best of luck for your final year, thanks for all your fantastic work on Hyperledger Composer, and we hope to see you submitting PRs in the near future... the footer is still waiting for you 😉

v0.9.0

30 Jun 13:37
Compare
Choose a tag to compare
v0.9.0 Pre-release
Pre-release

Important Breaking Changes

ACLs

The ACL syntax for specifying namespaces has changed. Previously, there was no way to distinguish between a namespace or class in ACLs. For example, org.acme.sample could be a namespace, or a sample asset in the org.acme namespace. This ambiguity caused issue 946 ACL File validation broken when models with similar namespaces are loaded.

The syntax now uses a similar notation to imports in model files. For example, org.acme.sample should now be org.acme.sample.* as shown in this common ACL rule:

rule EverybodyCanReadEverything {
    description: "Allow all participants read access to all resources"
    participant: "org.acme.sample.SampleParticipant"
    operation: READ
    resource: "org.acme.sample.*"
    action: ALLOW
}

System types

There are main elements of the Composer model file are asset transaction participant and event. Within a network, specific types can extend other types. This release adds in a system namespace, org.hyperledger.composer.system that contains an abstract type for all assets, transactions, participants and events. These abstract types will be the implicit super-type of any other type unless that type already extends something.

The org.hyperledger.composer.system.Event and org.hyperlegder.composer.system.Transaction have two properties each of an identifier and timestamp. In effect they are as follows

    abstract transaction Transaction identified by transactionId{
      o String transactionId
      o DateTime timestamp
    }
    abstract event Event identified by eventId{
      o String eventId
      o DateTime timestamp
    }

The impact of this change is that

  • any user defined transactions and/or events that have a 'transactionId' or 'eventId' or 'timestamp' will need to be removed.
  • the network archive will need to be updated as a result
  • ACLs might need to be updated if the current ACLs do not specifically include an allow for any type.

Reason for the change

Having to specify a transactionId in your own models was cumbersome; this will make future models easier to write and more future-proof. Likewise with events.

It also enables finer-grained control of the access control rules and permits future expansion to control operational access.

more information is available in issue 920
This includes a simple bash script that can be used to recursive search model files for possible places updates are required.

Queries

The queryNative runtime API introduced in v0.8.0 that allowed you to execute a CouchDB query against Hyperledger Fabric v1.0 has been removed. This API was always planned to be temporary, to give users the ability to run complex queries over data before we released something better.

Note that queryNative has several limitations - ACL rules are not applied to the results, nor is the data parsed and validated, and ACLs are not applied - limitations that we do not want to carry forwards.

We have introduced a new Composer query language (CQL) in #1234. The documentation will have details on using this, but it allows you to write queries in a high level language, which is similar to SQL:

SELECT org.acme.Driver 
            WHERE (_$ageParam < age)
                ORDER BY [lastName ASC, firstName DESC]
                    LIMIT _$limitParam
                        SKIP _$skipParam

Composer queries can be defined in a query file (queries.qry) in the business network definition and referenced by name, or can be created on the fly. Composer queries can include parameters, denoted by a leading _$.

There are two new APIs for doing this on the runtime, buildQuery (for building dynamic queries) and query (for executing a named or dynamic query).

There are also two new APIs for executing these queries from the client side, BusinessNetworkConnection.buildQuery and BusinessNetworkConnection.query.

Please see the new trade-network sample for how to use queries:
https://github.com/hyperledger/composer-sample-networks/tree/master/packages/trade-network

Removal of deprecated methods

There are several methods that have been deprecated for a while now, and v0.9.0 is a good excuse to remove them.

ModelFile.getFileName()
This should not affect anybody, as this is an internal method. However, if anybody is using this, then ModelFile.getName() is the correct method to be called.

Factory.newInstance()
This will affect anybody that is using the client APIs, or writing business network unit tests, but has been using this deprecated method. Please use Factory.newResource() instead.

BusinessNetworkConnection.existsAssetRegistry()
If anybody is using this, then BusinessNetworkConnection.assetRegistryExists() is the correct method to be called.

Composer Playground

As of this release, previous versions of Composer Playground will not be able to import samples from github through the playground interface any more. This is more applicable to users who have remained at
0.7.x versions of Composer Playground in order to be able to work with Hyperledger Fabric service providers whose services remain at Hyperledger Fabric alpha.1 releases.

Troubleshooting

Please ask on RocketChat for help if required. Please note that many issues can be resolved by stopping, starting docker containers, and also removing images.

Guidance on cleaning up existing images are described here.

Other Changes

  • Range constraints not enforced (#1391)
  • ACL support for VSCode extension (#383)

Documentation

  • You will see we have made some large changes to the way that our documentation is structured. This is a continuation of delivering a better docs experience for everyone! All the content has stayed the same, but we are making better use of your screen real-estate.

  • Known issue is on mobile at this point. Whilst navigable, we are looking to improve this further.

Shoutouts to new contributors!

v0.8.1

22 Jun 10:56
Compare
Choose a tag to compare
v0.8.1 Pre-release
Pre-release

This release of Hyperledger Composer supports Hyperledger Fabric v1.0 beta 1 and 0.6 releases.

Important Breaking Changes

None. However, please refer to the v0.8 release notes if you are upgrading from 0.7.5 or prior.

Troubleshooting

Detailed questions (and answers!) should go to StackOverflow using the hyperledger-composer tag.

RocketChat can be used for for help if required. Please note that many issues can be resolved by stopping, starting docker containers, and also removing images.

Guidance on cleaning up existing images are described here.

Other Changes

Documentation

The Playground Tutorial has been completely re-written to align with the Commodities use case described in the Developer tutorial. Short videos have also been added to guide users.

Issues Addressed

  • Auto scroll in Playground (#828)
  • Fix to expand/collapse and scrollbars in Playground (#652).
  • Remove hostnameOverride when importing certificates unless specified in imported profile (#1163)
  • Exception handling improvements (#796)
  • Fix runtime logging (#1306)
  • Fix certificate issues in Playground (#1184)
  • Error messages for parser are not consistent (#321)
  • Yeoman generator (#1267)

Shoutouts to new contributors!

v0.8.0

15 Jun 14:35
Compare
Choose a tag to compare
v0.8.0 Pre-release
Pre-release

This release of Hyperledger Composer supports Hyperledger Fabric v1.0 beta 1 and 0.6 releases.

Previous alpha versions of Hyperledger Fabric v1 are no longer supported.

Important Breaking Changes

HLF v1beta1 introduces several changes in the credentials required for the deploy process, as well as imposing restrictions on the names used for deployed chain code.

  • It is important to re-run the 'createConnectionProfile' command to update the connection profile.
  • The composer network deploy command requires the PeerAdmin ID and secret (previously this was admin and adminpw)
  • Business Network names are now restricted to lowercase a-z, 0-9, _, -

The network deploy should now be:

composer network deploy -i PeerAdmin -s whatever -a networkarchive.bna -p hlfv1

Note that secret is not needed as the required cryptographic material have been set IF you have used the fabric-dev-tools that are provided with Composer.

See https://github.com/hyperledger/composer-tools/tree/master/packages/fabric-dev-servers

It is only the composer deploy command that needs to use the PeerAdmin ID. For other commands continue to use the admin ID.

Composer Playground

The installer for the Composer Playground is also running against Hyperledger Fabric v1 beta1 and the credentials required to deploy are configured by the installer.

Troubleshooting

Please ask on RocketChat for help if required. Please note that many issues can be resolved by stopping, starting docker containers, and also removing images.

Guidance on cleaning up existing images are described here.

Other Changes

Content-based Queries (Experimental)

  • Experimental support for running content-based queries (using the Mango CouchDB query language) has been added (#820)

Playground

  • Add remove identity to playground (#1271)

ACL's

  • enable acl file addition (#1258)

Hyperledger Fabric v0.6

  • Port the Hyperledger Fabric v0.6 runtime to Duktape #1249

Bug Fixes

  • Get LoopBack wallets working properly with HLFv1 (#1269)
  • Fix connection profiles submit (#1248)

Shoutouts to new contributors!

@gangachris - fix rest server port log (#1260)