Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/manosbatsis/vaultaire
Query DSL and data access utilities for Corda developers.
https://github.com/manosbatsis/vaultaire
corda corda-developers corda-framework corda-rpc cordapp cordapps dsl dsl-builder kotlin kotlin-dsl query query-builder query-dsl query-language querydsl querying
Last synced: about 2 months ago
JSON representation
Query DSL and data access utilities for Corda developers.
- Host: GitHub
- URL: https://github.com/manosbatsis/vaultaire
- Owner: manosbatsis
- License: lgpl-3.0
- Created: 2019-08-19T17:04:56.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-07-15T09:33:16.000Z (over 1 year ago)
- Last Synced: 2024-08-04T03:05:35.633Z (5 months ago)
- Topics: corda, corda-developers, corda-framework, corda-rpc, cordapp, cordapps, dsl, dsl-builder, kotlin, kotlin-dsl, query, query-builder, query-dsl, query-language, querydsl, querying
- Language: Kotlin
- Homepage: https://manosbatsis.github.io/vaultaire
- Size: 4.77 MB
- Stars: 14
- Watchers: 5
- Forks: 2
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Vaultaire [![Maven Central](https://img.shields.io/maven-central/v/com.github.manosbatsis.vaultaire/vaultaire.svg)](https://repo1.maven.org/maven2/com/github/manosbatsis/vaultaire/vaultaire/) [![Build Status](https://travis-ci.com/manosbatsis/vaultaire.svg?branch=master)](https://travis-ci.com/manosbatsis/vaultaire)
Query DSL and data access utilities for Corda developers.
See complete documentation at https://manosbatsis.github.io/vaultaire
## Query DSL
Use DSL will make your queries much easier to read and maintain.
Each query DSL is automatically (re)generated at build time using annotation
processing.Usage example:
```kotlin
val queryCriteria: QueryCriteria = booksQuery {
and {
// Check publisher?
if(checkPublisher) fields.publisher `==` "Corda Books Ltd."
or {
fields.title `==` "A book on Corda"
fields.author `!=` "John Doe"
}
}
orderBy {
fields.title sort DESC
}
}.toCriteria()
```For more details see [Query DSL](https://manosbatsis.github.io/vaultaire/core/query-dsl/).
## State Services
Vaultaire's `StateService` components provide a simple, consistent API to
load, query and track vault states.`StateService` implementations are usually auto-generated at build-time
and specific to a `ContractState` type. They also help decouple your
code from `ServiceHub` and `CordaRPCOps` amd help increase code reuse in and out of a Node,
i.e. between cordapps and their clients.For more details see [State Services](https://manosbatsis.github.io/vaultaire/core/state-services/).
## RSQL Plugin
A plugin with support for [RSQL](https://www.baeldung.com/rest-api-search-language-rsql-fiql),
a URL-friendly query language for dynamic, complex queries and
maintenance-free REST endpoints for searching the Vault.For more details see [RSQL Support](https://manosbatsis.github.io/vaultaire/plugins/rsql-support/).
## Accounts Plugin
A plugin for adding Corda Accounts support to Vaultaire's runtime and build-time modules.
For more details see [Corda Accounts](https://manosbatsis.github.io/vaultaire/plugins/corda-accounts/).
## State DTOs
Maintaining Data Transfer Objects for your contract states can be a mundane, error-prone task.
Vaultaire’s annotation processing automates this by (re)generating those DTOs for you.For more info checkout [State DTOs](https://manosbatsis.github.io/vaultaire/core/state-dtos/)
## Other Utils
Vaultaire includes a few other utilities like:
- REST-friendly pages for query results.
- Annotation to generate responder flows from commonly used supertypes.For more info checkout [Other Utilities](https://manosbatsis.github.io/vaultaire/core/other-utils/)
## Sample Projects
1. For simple examples, checkout the vaultaire-example-contract and vaultaire-example-workflow
modules in Vaultaire's [repository](https://github.com/manosbatsis/vaultaire) on Github.
2. For an extensive Cordapp example including a Spring Boot client checkout the
[corbeans-yo-cordapp](https://github.com/manosbatsis/corbeans-yo-cordapp)
repository.