Packages

Sigra auth companion adapter for the Crosswake route-policy system.

Current section

Files

Jump to
Raw

README.md

# crosswake_sigra
Sigra auth companion adapter for [Crosswake](https://hexdocs.pm/crosswake) — the route-policy and runtime-contract library for Phoenix apps that go mobile.
This package extracts `Crosswake.Companions.Sigra` into a standalone Hex dependency so hosts can choose their companion integrations without modifying core. The module namespace (`Crosswake.Companions.Sigra`) and the adopter touch-point (`config :crosswake, :companions, [...]`) are unchanged — extraction is non-breaking.
## Installation
Add `crosswake_sigra` to your `mix.exs`:
```elixir
defp deps do
[
{:crosswake, "~> 0.2"},
{:crosswake_sigra, "~> 0.1"}
]
end
```
Then configure the companion in your application:
```elixir
config :crosswake, :companions, [Crosswake.Companions.Sigra]
```
## Single-user B2C hosts
For a host that has no organization model, project the backend-validated Sigra
session into `SessionAuthorityLane` with `org_id: nil`. This is an explicit
personal-account scope, not a synthetic organization. `AuthContext` derives
the same value from the lane.
The host must build that lane only after validating its Phoenix/Sigra session.
Browser or iOS return data can be evidence for a server-owned attempt, but it
does not grant route access. Do not pass cookies, OAuth tokens, credentials, or
stable account identifiers into shell diagnostics or offline payloads.
## Package-family discipline
`crosswake_sigra` is part of the Crosswake package family. Core (`crosswake`) never compile-depends on a companion; companions never depend on each other. See the [companion contract guide](https://hexdocs.pm/crosswake/companion_contract.html) for the stable seam surface.