Skip to content

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.