HostKit.RPC (host_kit v0.1.0-beta.7)

Copy Markdown View Source

Service-to-service RPC binding metadata.

HostKit models the deployment wiring: which service exposes RPC modules and which other services are bound to them. Runtime protocols such as SafeRPC own exact operations, schemas, and handshakes.

Summary

Types

t()

@type t() :: %HostKit.RPC{
  bindings: [HostKit.RPC.Binding.t()],
  exposes: [HostKit.RPC.Exposure.t()]
}

Functions

add_binding(rpc, binding)

@spec add_binding(t(), HostKit.RPC.Binding.t()) :: t()

add_exposure(rpc, exposure)

@spec add_exposure(t(), HostKit.RPC.Exposure.t()) :: t()

apply_permissions(project, resources)

@spec apply_permissions(HostKit.Project.t(), [struct()]) :: [struct()]

apply_runtime_bindings(resources, project, service)

@spec apply_runtime_bindings([struct()], HostKit.Project.t(), HostKit.Service.t()) ::
  [struct()]

binding_resources(project, opts \\ [])

@spec binding_resources(
  HostKit.Project.t(),
  keyword()
) :: [HostKit.Resources.File.t()]

new(opts \\ [])

@spec new(keyword()) :: t()

validate(project)

@spec validate(HostKit.Project.t()) :: :ok | {:error, HostKit.Diagnostics.t()}