# System

**Kind:** Service

**Source:** `Pams/Core/Pams.Security/Pams.Security.csproj` (line 1)

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

NuGet package dependency

`Pams.Security` declares NuGet package dependencies for the PAMS security component. The project file participates in build and restore flows so dependent security assemblies are available to the wider PAMS system.

## Diagram

```mermaid
sequenceDiagram
    participant Developer
    participant Project as Pams.Security.csproj
    participant NuGet
    participant Build as PAMS Build

    Developer->>Project: Restore or build project
    Project->>NuGet: Request declared packages
    NuGet-->>Project: Resolve package dependencies
    Project-->>Build: Supply referenced assemblies
    Build-->>Developer: Produce security component output
```

## Usage

```ts
import { readFile } from "node:fs/promises";

const projectFile = "Pams/Core/Pams.Security/Pams.Security.csproj";
const projectXml = await readFile(projectFile, "utf8");

const hasPackageReference =
  projectXml.includes("<PackageReference") ||
  projectXml.includes("packages.config");

if (!hasPackageReference) {
  throw new Error(
    `${projectFile} does not contain a recognized NuGet package declaration.`,
  );
}

console.log("Pams.Security contains NuGet package dependency metadata.");
```

## AI Coding Instructions

- Keep NuGet dependency declarations aligned with the project’s existing legacy format.
- Inspect `Pams.Security.csproj` and related package metadata before changing package versions or references.
- Restore packages through the repository’s normal build process before diagnosing missing assembly errors.
- Avoid converting dependency formats unless the related projects and build tooling are updated together.
