aviorapi/README.md
2026-08-28 11:17:32 +08:00

17 KiB

Go API Framework

Overview

This document describes the API source tree represented by the project-root placeholder source. The structure separates shared data resources, framework-owned foundations, software-specific extensions, runtime composition, and project-level files.

Architecture

Data

The data directory provides the common resource system for framework-owned and software-owned embedded data, using a central cabinet, data-specific ledgers, and resource handlers to register and resolve resources through a controlled and lightweight access path.

  • data — provides the common resource system for framework-owned and software-owned embedded data, using a central cabinet, data-specific ledgers, and resource handlers to register and resolve resources through a controlled and lightweight access path.
    • cabinet — serves as the common coordination point for framework-owned and software-owned data ledgers, determining which ledger is responsible for a requested resource.
      • cabinet.go — implements the cabinet that coordinates registration and access across the framework and software data ledgers.
    • framework — contains the data resources owned and maintained by the framework developer.
      • ledger — acts as the registrar for framework-owned resources and identifies the handler responsible for each resource.
        • ledger.go — implements the framework-owned resource ledger and its resource registration and resolution.
      • metadata — contains framework-owned metadata resources.
        • handler.go — provides the resource-specific logic for accessing and parsing the embedded framework metadata when requested.
        • resource.json — contains the embedded framework metadata resource.
    • software — contains the data resources owned and maintained by the software developer.
      • ledger — acts as the registrar for software-owned resources and identifies the handler responsible for each resource.
        • ledger.go — implements the software-owned resource ledger and its resource registration and resolution.
      • metadata — contains software-owned metadata resources.
        • handler.go — provides the resource-specific logic for accessing and parsing the embedded software metadata when requested.
        • resource.json — contains the embedded software metadata resource.

Essential

The essential directory provides the framework-owned foundation used by software built on the framework, including framework interactions, internal services, and reusable services exposed to the software layer.

  • essential — provides the framework-owned foundation used by software built on the framework, including framework interactions, internal services, and reusable services exposed to the software layer.
    • exchange — serves as the registrar for framework-owned interactions, allowing framework services to register their interactive, imperative, and directive logic for later composition by the runtime.
      • communicative — provides the framework-side enforcement point for API communication where the framework engine applies the applicable enforcement policy.
        • communicative.go — provides the framework communicative enforcement entry point through which the enforcement engine applies the applicable policy.
      • directive — contains the framework-owned directive interaction path.
        • directive.go — implements framework-owned directive interaction handling.
      • imperative — contains the framework-owned imperative interaction path.
        • imperative.go — implements framework-owned imperative interaction handling.
      • router — organizes the routing of framework-owned interactions to their appropriate interaction handling path.
        • router.go — implements the framework-owned interaction routing.
    • hidden — contains internal framework services that may be used within the essential layer but are not permitted to be called from the software layer, regardless of whether their functions are exported.
      • service — contains internal framework services available to the framework.
        • enforcement — provides framework-managed enforcement services for applying software-defined enforcement policies to interactions.
          • engine — contains the framework enforcement engines that implement how enforcement policies are evaluated and applied.
            • authentication — provides the engine for authenticating interaction participants.
              • authentication.go — implements authentication enforcement.
            • authorization — provides the engine for authorizing interaction participants.
              • authorization.go — implements authorization enforcement.
            • capping — provides the engine for enforcing absolute resource or usage ceilings.
              • capping.go — implements capping enforcement.
            • limiting — provides the engine for enforcing resource or usage limits.
              • limiting.go — implements limiting enforcement.
            • throttling — provides the engine for enforcing request or interaction rates.
              • throttling.go — implements throttling enforcement.
            • validation — provides the engine for validating interaction data and conditions.
              • validation.go — implements validation enforcement.
        • management — provides services for managing the lifecycle of the compiled binary.
          • clean — provides the compiled binary cleanup service.
            • clean.go — implements the compiled binary cleanup service.
          • install — provides the compiled binary installation service.
            • install.go — implements the compiled binary installation service.
          • lifecycle — provides the compiled binary lifecycle service.
            • restart.go — implements the compiled binary restart service.
            • start.go — implements the compiled binary start service.
            • stop.go — implements the compiled binary stop service.
          • uninstall — provides the compiled binary uninstallation service.
            • uninstall.go — implements the compiled binary uninstallation service.
          • update — provides the compiled binary update service.
            • update.go — implements the compiled binary update service.
        • worker — provides the automation layer for the compiled binary while keeping its automation configuration outside the binary.
          • clock — provides the clock syncronization service.
            • clock.go — implements the clock syncronization service.
          • manager — manages the workers responsible for executing automation.
            • manager.go — implements worker management.
    • visible — contains framework services that the software layer is permitted to call, providing reusable abstractions over framework capabilities.
      • service — contains reusable framework services available to the software layer.
        • helper — contains reusable helper services for common software needs.
          • cipher — provides reusable encryption and decryption functionality.
            • cipher.go — implements cipher functionality.
          • codec — provides reusable encoding and decoding functionality.
            • codec.go — implements codec functionality.
          • datetime — provides reusable date and time utilities.
            • datetime.go — implements date and time utilities.
          • filesystem — provides reusable filesystem utilities.
            • filesystem.go — implements filesystem utilities.
          • hash — provides reusable hashing functionality.
            • hash.go — implements hashing functionality.
          • key — provides reusable key-generation functionality.
            • key.go — implements key generation functionality.
          • log — provides reusable logging utilities.
            • log.go — implements logging utilities.
          • marker — provides generalized identifier-generation functionality for uses that require generated markers or identifiers.
            • marker.go — implements marker generation functionality.
          • progress — provides reusable progress tracking utilities.
            • progress.go — implements progress utilities.
          • retriever — provides a unified interface for accessing both framework-owned and software-owned data.
            • retriever.go — implements the unified data retrieval interface.
          • status — provides reusable status utilities.
            • status.go — implements status utilities.

Operational

The operational directory contains the software-specific implementation and interaction components maintained by the software developer within the architecture provided by the framework.

  • operational — contains the software-specific implementation and interaction components maintained by the software developer within the architecture provided by the framework.
    • exchange — serves as the registrar for software-specific interactions, allowing software services to register their interactive, imperative, and directive logic for composition by the runtime.
      • communicative — provides the software-specific API communication entry point where software services define and expose their communicative interactions.
        • communicative.go — implements the software-specific communicative API interaction handling.
      • directive — contains the software-specific directive interaction path.
        • directive.go — implements software-specific directive interaction handling.
      • imperative — contains the software-specific imperative interaction path.
        • imperative.go — implements software-specific imperative interaction handling.
      • router — organizes the routing of software-specific interactions to their appropriate interaction handling path.
        • router.go — implements the software-specific interaction routing.
    • mechanism — contains the software-specific mechanisms through which application services and their features are implemented.
      • service — serves as the container for software-specific services.
        • service — placeholder for a software-specific service that is replaced with the actual service name.
          • feature — contains the features provided by the software-specific service.
            • function.go — implements a feature of the software-specific service.

Run

The run directory provides the stable runtime entry and interaction composition layer for the compiled application.

  • run — provides the stable runtime entry and interaction composition layer for the compiled application.
    • exchange — combines the registered framework-owned and software-owned interactions into the unified interaction structure used by the running application.
      • communicative — contains the runtime communicative command path for receiving and dispatching communicative commands across defined interaction boundaries.
        • communicative.go — implements runtime communicative command handling.
      • directive — receives and processes runtime directive interactions.
        • directive.go — implements runtime directive interaction handling.
      • imperative — receives and processes runtime imperative interactions.
        • imperative.go — implements runtime imperative interaction handling.
      • router — routes incoming runtime interactions to the appropriate framework or software interaction path.
        • router.go — implements runtime interaction routing.
    • main — provides the executable entry point that initializes the required packages and starts the application without directly defining its menus, commands, flags, or arguments.
      • main.go — bootstraps the runtime and starts the compiled application.

Project Files

The project root contains the following project-level files:

  • .gitignore — defines files and directories that should be excluded from version control.
  • CHANGELOG.md — records changes made to the framework across versions.
  • go.mod — defines the Go module configuration and dependency context for the project.
  • LICENSE.md — defines the licensing terms governing the framework.
  • Makefile — provides build, update, and automation tasks for maintaining and operating the framework.
  • README.md — provides documentation describing the framework and its usage.

Source Tree

The following structure represents the API source tree:

source ├── data │ ├── cabinet │ │ └── cabinet.go │ ├── framework │ │ ├── ledger │ │ │ └── ledger.go │ │ └── metadata │ │ ├── handler.go │ │ └── resource.json │ └── software │ ├── ledger │ │ └── ledger.go │ └── metadata │ ├── handler.go │ └── resource.json ├── essential │ ├── exchange │ │ ├── communicative │ │ │ └── communicative.go │ │ ├── directive │ │ │ └── directive.go │ │ ├── imperative │ │ │ └── imperative.go │ │ └── router │ │ └── router.go │ ├── hidden │ │ └── service │ │ ├── enforcement │ │ │ └── engine │ │ │ ├── authentication │ │ │ │ └── authentication.go │ │ │ ├── authorization │ │ │ │ └── authorization.go │ │ │ ├── capping │ │ │ │ └── capping.go │ │ │ ├── limiting │ │ │ │ └── limiting.go │ │ │ ├── throttling │ │ │ │ └── throttling.go │ │ │ └── validation │ │ │ └── validation.go │ │ ├── management │ │ │ ├── clean │ │ │ │ └── clean.go │ │ │ ├── install │ │ │ │ └── install.go │ │ │ ├── lifecycle │ │ │ │ ├── restart.go │ │ │ │ ├── start.go │ │ │ │ └── stop.go │ │ │ ├── uninstall │ │ │ │ └── uninstall.go │ │ │ └── update │ │ │ └── update.go │ │ └── worker │ │ ├── clock │ │ │ └── clock.go │ │ └── manager │ │ └── manager.go │ └── visible │ └── service │ └── helper │ ├── cipher │ │ └── cipher.go │ ├── codec │ │ └── codec.go │ ├── datetime │ │ └── datetime.go │ ├── filesystem │ │ └── filesystem.go │ ├── hash │ │ └── hash.go │ ├── key │ │ └── key.go │ ├── log │ │ └── log.go │ ├── marker │ │ └── marker.go │ ├── progress │ │ └── progress.go │ ├── retriever │ │ └── retriever.go │ └── status │ └── status.go ├── operational │ ├── exchange │ │ ├── communicative │ │ │ └── communicative.go │ │ ├── directive │ │ │ └── directive.go │ │ ├── imperative │ │ │ └── imperative.go │ │ └── router │ │ └── router.go │ └── mechanism │ └── service │ ├── enforcement │ │ └── policy │ │ ├── authentication │ │ │ └── authentication.go │ │ ├── authorization │ │ │ └── authorization.go │ │ ├── capping │ │ │ └── capping.go │ │ ├── limiting │ │ │ └── limiting.go │ │ ├── throttling │ │ │ └── throttling.go │ │ └── validation │ │ └── validation.go │ └── service │ └── feature │ └── function.go ├── run │ ├── exchange │ │ ├── communicative │ │ │ └── communicative.go │ │ ├── directive │ │ │ └── directive.go │ │ ├── imperative │ │ │ └── imperative.go │ │ └── router │ │ └── router.go │ └── main │ └── main.go ├── .gitignore ├── CHANGELOG.md ├── go.mod ├── LICENSE.md ├── Makefile └── README.md