Skip to content

DevNico/cedar4s

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cedar4s

Scala CI License

Type-safe Cedar authorization for Scala. Generates type-safe Scala code from Cedar schemas with compile-time validation and effect polymorphism.

Early Stage - cedar4s is under active development. APIs may change between releases. We'd love your feedback — please open an issue with questions, suggestions, or anything you run into.

Installation

// project/plugins.sbt
addSbtPlugin("io.github.devnico" % "sbt-cedar4s" % "0.1.0-SNAPSHOT")

// build.sbt
enablePlugins(Cedar4sPlugin)
libraryDependencies += "io.github.devnico" %% "cedar4s-client" % "0.1.0-SNAPSHOT"

Quick Example

import example.docshare.cedar.*

// Create runtime (once at startup)
val runtime = CedarRuntime(engine, entityStore, principalResolver)

// Create session (per request)
given session: CedarSession[Future] = runtime.session(Principal.User(userId))

// Type-safe authorization checks
Document.View.on(DocumentId("doc-1")).require

// Compose checks with AND/OR
(Folder.View.on(folderId) & Document.View.on(docId)).require

// Batch operations
val allowed = session.filterAllowed(documentIds)(id => Document.View.on(id))

Full Documentation →