# Packet Manager

## Overview

Packet Manager performs the following functions:

1. Reads/writes registration packets from/to the [Object Store](https://docs.mosip.io/1.2.0/id-lifecycle-management/supporting-components/persistence/object-store).
2. Performs in-memory encryption and decryption of packets.
3. Performs security checks, checksum, file validations, ID object validations, etc. on the registration packet.
4. Provides packet information to other services via APIs. In case of multiple packets associated with an ID, pulls information from packets based on configured priority. (See [`packetmanager.default.priority`](https://github.com/mosip/mosip-config/blob/develop3-v3/application-default.properties)).

Packet Manager runs as a service and is also available as a library.

![](/files/kGjFIGNgSfsDvo46OZQv)

The relationship of the Packet Manager with other services is explained here.

{% hint style="info" %}
***NOTE**: The numbers do not signify a sequence of operations or control flow. Arrows indicate data flow*
{% endhint %}

1. [Resident Services](/1.2.0/id-lifecycle-management/identity-management/resident-services.md) uses the Packet Manager library to create packets.
2. [Registration Processor](/1.2.0/id-lifecycle-management/identity-issuance/registration-processor.md) reads packet data using the Packet Manager service.
3. Packets are stored and retrieved from the [Object Store](https://docs.mosip.io/1.2.0/id-lifecycle-management/supporting-components/persistence/object-store).
4. Audit logs.
5. Encryption and decryption of packet.
6. [Registration Client](/1.2.0/id-lifecycle-management/identity-issuance/registration-client.md) uses the Packet Manager library to create packets.

## Packet structure

Refer to [Registration Packet Structure](/1.2.0/id-lifecycle-management/supporting-components/packet-manager/registration-packet-structure.md).

## API

Refer to [API Documentation](https://mosip.github.io/documentation/1.2.0/1.2.0.html).

## Source code

[Github repo](https://github.com/mosip/packet-manager/tree/release-1.2.0).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mosip.io/1.2.0/id-lifecycle-management/supporting-components/packet-manager.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
