Skip to content

Add Key Templates System #13

@izadoesdev

Description

@izadoesdev

Overview

Add a template system to quickly create keys with predefined configurations.

Motivation

Templates simplify key creation by providing reusable configurations for common use cases.

Proposed API

// Define reusable templates
keys.defineTemplate('readonly', {
  scopes: ['read'],
  expiresIn: '30d',
})

const { key } = await keys.createFromTemplate('readonly', {
  ownerId: 'user_123',
})

Implementation Details

Template Storage

  • Store templates in memory or storage
  • Support template inheritance
  • Allow runtime template creation

Template Features

interface KeyTemplate {
  name: string
  scopes: string[]
  expiresIn?: string
  ipWhitelist?: string[]
  rateLimit?: RateLimitConfig
  metadata?: Record<string, any>
}

Acceptance Criteria

  • Implement template storage
  • Support template creation and retrieval
  • Support template inheritance
  • Add template validation
  • Add tests for templates
  • Document template system
  • Provide default templates

Priority

Low - Convenience feature

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions