PulseTrade.Comm.Login.Core
0.1.1
dotnet add package PulseTrade.Comm.Login.Core --version 0.1.1
NuGet\Install-Package PulseTrade.Comm.Login.Core -Version 0.1.1
<PackageReference Include="PulseTrade.Comm.Login.Core" Version="0.1.1" />
<PackageVersion Include="PulseTrade.Comm.Login.Core" Version="0.1.1" />
<PackageReference Include="PulseTrade.Comm.Login.Core" />
paket add PulseTrade.Comm.Login.Core --version 0.1.1
#r "nuget: PulseTrade.Comm.Login.Core, 0.1.1"
#:package PulseTrade.Comm.Login.Core@0.1.1
#addin nuget:?package=PulseTrade.Comm.Login.Core&version=0.1.1
#tool nuget:?package=PulseTrade.Comm.Login.Core&version=0.1.1
PulseTrade.Comm.Login.Core
PulseTrade.Comm.Login.Core is the package-level authentication workflow contract above PulseTrade.Comm.ACL.Core.
It owns:
- login credential vocabulary
- fCell2-facing
ptc.login.config.v1config decode - opaque access/refresh/browser-session token lifecycle
- provider seam for user/password, bearer/session, and external assertion flows
- session registry abstraction
- attempt gate seam for rate limit / lockout
- login audit DTO redaction
- Akka-facing login command/reply message protocol and a small coordinator actor
It does not own authorization. Login success returns an AclPrincipal; ACL policy evaluation still decides whether a command/write action may proceed.
API Surface
LoginConfig.decodeconverts fCell2-facing config intoLoginConfigSnapshotandLoginSecurityOptions.ILoginCredentialVerifiernormalizes credentials intoAclPrincipal.ILoginSessionStoreowns access/refresh/browser-session persistence;InMemoryLoginSessionStoreis LocalDev/demo, whileJsonFileLoginSessionStoreis a package-level durable adapter for restart/replay tests and single-node bootstrap scenarios.- Production durable adapters live in separate packages:
PulseTrade.Comm.Login.SqlServerandPulseTrade.Comm.Login.Pcsl. ILoginAttemptGateruns before and after verification;InMemoryLoginAttemptGateis the LocalDev/demo lockout gate.LoginCore.authenticateAsync,refreshAsync,revokeAsync,resolveBearerAsync, andresolveSessionAsyncare the direct functional API.LoginCommand/LoginReplyplusLoginActor.props/spawnexpose the Akka boundary.LoginActor.spawnWithRegistryDescriptorreturns the actor and aLoginActorRegistryDescriptorthat a Host can feed intoPulseTrade.Comm.Actor.Registryor PTCS actor-tree diagnostics without making Login Core depend on PTCS UI.
Verification
dotnet build .\Libs\PulseTrade.Comm\tests\PulseTrade.Comm.ACL.Tests\PulseTrade.Comm.ACL.Tests.fsproj -c Debug
dotnet run --project .\Libs\PulseTrade.Comm\tests\PulseTrade.Comm.ACL.Tests\PulseTrade.Comm.ACL.Tests.fsproj -c Debug --no-build
Latest recorded result: 36/36 passed on 2026-06-30.
Journal / Snapshot / DB
This package does not use Akka.Persistence journal/snapshot tables and does not create SQL tables.
JsonFileLoginSessionStore persists a full UTF-8 JSON snapshot at the caller-supplied path. The snapshot schema is ptc.login.session-store.snapshot.v1; it contains opaque token strings, browser session ids, principal metadata, login session metadata, refresh expiry, and revocation state. Treat this file as sensitive runtime data and keep it outside the repo. It is durable across ordinary process restart if the file survives, but it is not a multi-node SQL/PCSL provider or HA proof.
For production storage:
PulseTrade.Comm.Login.SqlServerowns SQL Server tableLoginSessionwith access/refresh token hash indexes.PulseTrade.Comm.Login.Pcslstores append-only rows in PTCSCommHubsetptc-login-session-storeunder session/access/refresh hash keys.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Akka (>= 1.5.71)
- FSharp.Core (>= 10.1.400)
- PulseTrade.Comm.ACL.Core (= 0.1.1)
NuGet packages (4)
Showing the top 4 NuGet packages that depend on PulseTrade.Comm.Login.Core:
| Package | Downloads |
|---|---|
|
PulseTrade.Comm.Spa
Small Suave + WebSharper SPA shell for key-set based chat, participant, set, and actor views. |
|
|
PulseTrade.Comm.Login.Pcsl
PulseTrade Comm Login PCSL durable session store provider. |
|
|
PulseTrade.Comm.Spa.Login
Open PTCS Login extension facade for PulseTrade.Comm.Spa. |
|
|
PulseTrade.Comm.Login.SqlServer
PulseTrade Comm Login SQL Server durable session store and credential verifier provider. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.1 | 1,089 | 9/8/2026 |
| 0.1.0-alpha5 | 3,423 | 6/30/2026 |
| 0.1.0-alpha4 | 102 | 6/30/2026 |
| 0.1.0-alpha3 | 103 | 6/30/2026 |
| 0.1.0-alpha2 | 102 | 6/30/2026 |
| 0.1.0-alpha1 | 107 | 6/30/2026 |