# Microsoft.IdentityModel.Logging

**Kind:** Service

**Source:** `Pams/Logic/Pams.Business/Pams.Business.csproj` (line 1)

**Part of:** [Pams](subsystem-pams)

NuGet package dependency

`Microsoft.IdentityModel.Logging` is a NuGet package dependency declared for the `Pams.Business` project. It supports identity-related diagnostic logging when IdentityModel components emit authentication or token-processing events.

## Diagram

```mermaid
sequenceDiagram
    participant Build as Build process
    participant Project as Pams.Business.csproj
    participant NuGet as NuGet restore
    participant Logging as Microsoft.IdentityModel.Logging
    participant App as Pams.Business

    Build->>Project: Read package dependency
    Project->>NuGet: Restore package
    NuGet-->>Logging: Resolve package files
    Logging-->>NuGet: Return restored assets
    NuGet-->>App: Make assembly available
    App->>Logging: Emit identity diagnostics
```

## Usage

```ts
import { execFileSync } from "node:child_process";

const projectFile = "Pams/Logic/Pams.Business/Pams.Business.csproj";

const packageList = execFileSync(
  "dotnet",
  ["list", projectFile, "package"],
  { encoding: "utf8" },
);

if (!packageList.includes("Microsoft.IdentityModel.Logging")) {
  throw new Error(
    "Microsoft.IdentityModel.Logging is not declared for Pams.Business.",
  );
}

console.log("Microsoft.IdentityModel.Logging dependency found.");
```

## AI Coding Instructions

- Keep `Microsoft.IdentityModel.Logging` aligned with the package declaration format already used by `Pams.Business.csproj`.
- Treat this package as a .NET dependency; TypeScript code should interact with the application through its APIs rather than importing the NuGet package.
- Check restore output after changing package references, especially where identity or token handling code is involved.
- Avoid adding application logging calls that expose tokens, credentials, claims, or authorization headers.

## Used by

2 references from 2 files. Each is a place in this repository where the symbol is actually used — go read one rather than trusting an example.

### Injected or called by (2)

- `Pams.API` — `Pams/API/Pams.API/Pams.API.csproj`:1
- `Pams.Business` — `Pams/Logic/Pams.Business/Pams.Business.csproj`:1
