What's new
2025.1
NPL CLI
The NPL CLI is a new open-source command-line tool that can be used to run tests, check code correctness, generate OpenAPI specifications and PUML diagrams, deploy code, and more.
VS Code extension
NPL now has a VS Code extension that provides syntax highlighting, error checking, gen-AI support, cloud deployment, and more. Both the extension and the underlying NPL Language Server have been released as open source.
Party automation
Party automation is a new feature that allows you to specify rules for automated party assignment when a protocol is created via the API. This feature uses the creation request's authentication token and a defined set of rules, eliminating the need for manual party input or custom logic from external systems. It simplifies integrations, ensures consistent party assignment, and enforces core requirements at protocol instantiation. Party Automation supports static assignment of fixed parties, dynamic extraction of party attributes from identity tokens, and validation of required claims.
Development mode with embedded OIDC server
The development mode now lets you run NPL applications locally with a minimal amount of setup. It includes an embedded OpenID Connect (OIDC) server that comes preloaded with a set of test users (which can be overridden with your own users).
Trailing commas in NPL
NPL now allows you to use trailing commas wherever you would expect them to work, such as in protocol, function, and permission parameter lists, both at the declaration and invocation sites.
2024.2
NPL line coverage
The 2024.2 release introduces the ability to measure line coverage for your NPL code. This allows you to see which parts of your code are covered by tests, and which parts are not. This is a great way to ensure that your tests are comprehensive and that you are not missing any edge cases.
2024.1
NPL APIs
The 2024.1 release introduces the NPL application API. This provides a REST API and associated OpenAPI schema that accurately reflects the structure of your NPL application and provides discoverability of all actions allowed for the current caller at the current point in time.
The OpenAPI schema is automatically generated, and optimized for consumption by the most common code generators. This in turn greatly reduces the need for custom API gateways between your NPL applications and the rest of the world. We are committed to making such custom API gateways fully irrelevant by continuously improving the NPL APIs.
The old technical APIs are still supported, and will remain supported as they serve many use cases where the application's structure is irrelevant. However, for typical frontends and integrations, the new NPL APIs should be preferable for everyone.
NPL migration testing
The migration testing framework has been extended to support testing migrations using NPL itself. While the test scaffolding still needs to be written in a JVM-based language such as Kotlin, the actual tests can now be expressed in NPL. This brings migration testing closer to the NPL developer.
Contributor libraries
It is now possible to package, distribute and use libraries written in NPL, allowing you to share NPL constructs with other teams or the rest of the world.
Standard Library Extra
The Standard Library Extra is a new collection of NPL
constructs that are not part of the core NPL standard library, but are useful for many applications. Its first iteration
contains new math functions and Text
manipulation functions.
Require statements can now be used anywhere
The require
statements can now be used anywhere in the NPL code, not just at the top of functions, permissions, and
protocols. This means that they now act more like assertions than preconditions, and can be used to validate any part of
the code.
2023.3
Privacy regulation support
In order to comply with regulations like the GDPR, FADP and CCPA, it's important that you're able to remove references to personal data where applicable. The Noumena Runtime now provides the ability to anonymize specific fields on specific protocols -- this ensures that the internal consistency of the applications is maintained, while still being able to remove specific data where applicable.
AMQP support
The newly released AMQP support allows applications to publish their notifications to any message queue that supports AMQP 1.0. This in turns makes it even easier to integrate NPL applications within a bigger application landscape.