Skip to content

Release Notes v0.1.0

Release Date: June 2026

Highlights

  • Layered Identity Composition: New identity/ package for composing Human (ID-JAG), Agent (AAuth), and Workload (SPIFFE) identities
  • Storage Backends: SQLite and DynamoDB implementations with pluggable store interface
  • Server Adapters: PersonServer and AuthzServer adapters for agent-protocols interface packages
  • Deployment Options: CLI server for local development and AWS Lambda handler for serverless

New Features

Layered Identity Composition (identity/)

Compose three complementary identity layers into a unified ComposedIdentity:

import "github.com/plexusone/agentauth/identity"

composer := identity.NewComposer(
    identity.WithAAuthVerifier(aauthVerifier),
    identity.WithIDJAGVerifier(idjagVerifier),
    identity.WithWorkloadVerifier(spiffeVerifier),
)

composed, err := composer.Compose(ctx, identity.ComposeOptions{
    AAuthToken:      aauthToken,
    IDJAGAssertion:  idjagAssertion,
    IncludeWorkload: true,
})

Identity layers:

  • Human Identity (ID-JAG): Which user is this agent acting for?
  • Agent Identity (AAuth): Which autonomous agent is this?
  • Workload Identity (SPIFFE): Which workload is hosting this?

Storage Backends (store/)

Pluggable storage with SQLite and DynamoDB implementations:

import "github.com/plexusone/agentauth/store"

// SQLite for development
sqliteStore, err := store.NewSQLite("agentauth.db")

// DynamoDB for production
dynamoStore, err := store.NewDynamoDB(ctx, store.DynamoDBConfig{
    TableName: "agentauth",
    Region:    "us-west-2",
})

Storage types:

  • User - Human users
  • Agent - AI agents
  • Mission - Agent task tracking
  • Token - Issued access tokens
  • PreAuthorization - Pre-approved scopes
  • AuditLog - Authorization audit trail

Server Adapters

Adapters connecting agent-protocols interface packages to storage:

// PersonServer adapter for aauth/personserver
psStore := store.NewPersonServerAdapter(sqliteStore)
ps, err := personserver.New(psStore, issuer, privateKey, keyID)

// AuthzServer adapter for idjag/authzserver
asStore := store.NewAuthzServerAdapter(sqliteStore)
as, err := authzserver.New(asStore, issuer, privateKey, keyID)

CLI Server (cmd/agentauth-server/)

Local development server with SQLite storage:

# Run with in-memory database
go run ./cmd/agentauth-server

# Run with persistent storage
go run ./cmd/agentauth-server --db ./agentauth.db --port 8080

AWS Lambda Handler (lambda/peopleserver/)

Serverless deployment with DynamoDB storage:

import "github.com/plexusone/agentauth/lambda/peopleserver"

func main() {
    handler := peopleserver.NewHandler(peopleserver.Config{
        TableName: os.Getenv("DYNAMODB_TABLE"),
        Issuer:    os.Getenv("ISSUER"),
    })
    lambda.Start(handler.Handle)
}

Added

  • identity/ package with ComposedIdentity, HumanIdentity, AgentIdentity, WorkloadIdentity types
  • identity.Composer for composing identities from credentials
  • identity.WithContext() and identity.FromContext() for context integration
  • store.Storer interface for pluggable storage
  • store.SQLiteStore implementation
  • store.DynamoDBStore implementation
  • store.PersonServerAdapter for aauth/personserver compatibility
  • store.AuthzServerAdapter for idjag/authzserver compatibility
  • cmd/agentauth-server/ CLI binary
  • lambda/peopleserver/ AWS Lambda handler
  • examples/agentauth-demo/ demonstration application
  • examples/omniagent-aauth/ OmniAgent integration example
  • GitHub Actions CI workflow
  • golangci-lint configuration

Documentation

  • AgentAuth overview and architecture
  • Getting started guide with code examples
  • Deployment guide for AWS Lambda
  • API reference for HTTP endpoints
  • Integration guide for OmniAgent

Dependencies

  • github.com/aistandardsio/agent-protocols - Protocol implementations
  • github.com/aws/aws-sdk-go-v2 - AWS SDK for DynamoDB
  • github.com/aws/aws-lambda-go - Lambda runtime
  • github.com/awslabs/aws-lambda-go-api-proxy - API Gateway proxy
  • github.com/mattn/go-sqlite3 - SQLite driver
  • github.com/golang-jwt/jwt/v5 - JWT handling

Migration Guide

This is the initial release. For users of the composition layer previously in agent-protocols:

// Before (agent-protocols v0.5.0)
import "github.com/aistandardsio/agent-protocols/agentauth"

// After (agentauth v0.1.0)
import "github.com/plexusone/agentauth"
import "github.com/plexusone/agentauth/store"
import "github.com/plexusone/agentauth/identity"

The interface-based servers remain in agent-protocols:

import "github.com/aistandardsio/agent-protocols/aauth/personserver"
import "github.com/aistandardsio/agent-protocols/idjag/authzserver"