#logic-programming #programming-language #data #authorization #authentication

nightly no-std passdata

Authentication and authorization data in a logic programming language

2 releases

0.0.2 Sep 4, 2023
0.0.1 Aug 18, 2023

#1181 in Development tools

MIT/Apache

65KB
1.5K SLoC

Passdata

Passdata is authentication and authorization data expressed in a logic programming language. Data should fit within the limits of a HTTP cookie or header. The language is limited in order to guarantee execution characteristics during execution.

Applications and services which accept Passdata are intended to be usable without the need to contact a centralized service for every operation.

The library is experimental and is not intended for production usage.

Alternatives

There are many alternatives which are considered production ready. It is strongly recommended to look into these alternatives.

Differences from Alternatives

Compared to traditional HTTP sessions, Passdata does not require a server side persistence data store. More computation is done in the application code to process Passdata, but the tradeoff may be desirable in situations where compute is cheap but the cost in persisting and retrieving from storage is high.

JSON Web Tokens and Pasteo are primarily used with a limited set of predefined data fields. Passdata allows arbitrary data.

Passdata is not focused on token attenutation unlike Macaroons and Biscuits.

Passdata is most similar to Biscuits which has its own logic programming language. However, Passdata has a more limited logic programming language in order to provide better guarantees on possible resource usage.

License

Licensed under either of Apache License, Version 2.0 or MIT License at your option.

Contributions

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Dependencies

~295KB