> For the complete documentation index, see [llms.txt](https://documentation.ocsinventory-ng.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://documentation.ocsinventory-ng.org/project-overview/v2-vs-v3-whats-changed.md).

# v2 vs v3: What’s changed?

If you’re planning an upgrade, please read through the [Migration guidelines](/project-overview/migration-guide.md) and [Agent overview](/administrator-docs/agent-setup/agent-overview.md).

### Technology

Perl and PHP, which were the main languages used by the 2.x version, have been retired. The 3.x version uses a more modern stack:

* **Backend**: Python **Django** + **Django REST Framework**
* **Frontend**: **Vue.js** web console

### Architecture

{% columns %}
{% column %}
In 2.x:

* the **communication server** wrote inventories to the database
* the **web console** reads and wrote the database directly
  {% endcolumn %}

{% column %}
In 3.x:

* the **backend API** is the single entry point
* the **agent** sends inventory data to the API
* the **web console** calls the same API
  {% endcolumn %}
  {% endcolumns %}

For the diagram version of this comparison, see **Reference architectures** in [Migration guidelines](/project-overview/migration-guide.md).

### Agent (client)

{% columns %}
{% column %}
In 2.x:

* unix-like agents were **Perl** based
* the Windows agent was mainly **C++** based
  {% endcolumn %}

{% column %}
In 3.x:

* the agent is a **single cross-platform codebase** written in **Dart**
* the agent focuses on **inventory collection** only
  {% endcolumn %}
  {% endcolumns %}

### Network discovery

{% columns %}
{% column %}
In 2.x:

* agents would run **SNMP** scans
* agents would run **IPDiscover** scans
* SNMP inventory was kept separate from standard inventories
  {% endcolumn %}

{% column %}
In 3.x:

* **SNMP Scanner** is a dedicated standalone tool
* SNMP inventories are stored along standard inventories
* **IPDiscover** runs on the server only
  {% endcolumn %}
  {% endcolumns %}

{% hint style="warning" %}
If you relied on agent-side SNMP or IPDiscover in 2.x, validate the 3.x equivalents (see [Network Discovery](/administrator-docs/network-discovery.md)).
{% endhint %}

### Plugins/extensions

The new [Template](/user-docs/asset-management/inventory-and-templates.md#template-inventory) system introduced in 3.x makes many of the old plugins/extensions obsolete due to its highly customizable nature : extensions that were used solely to retrieve additional data from agents can now be replaced by creating a custom template.

3.x extensions will instead focus on extending the functionality of the web console itself or sourcing external data.

### Features

Some features were reworked, replaced, or are still in progress:

* **Registry** data can now be collected through the creation and use of custom [Templates](/user-docs/asset-management/inventory-and-templates.md#template-inventory).
* **Local import / Perl injector** are replaced by the local JSON workflow. The agent can generate JSON in [local mode](/administrator-docs/agent-setup/configuration.md#execution-modes), and you can post it directly to the API. Assets can also be created manually this way.
* **Software categories** will be coming soon and rely on the [Rules engine](/administrator-docs/server-setup/configuration/advanced/managing-rules.md).
* **CVE** inventory is planned to be reworked and consolidated to offer a better experience.
* **Notifications** are planned.
* **Green IT** is planned.

New features introduced in 3.x:

* [**Rules engine**](/administrator-docs/server-setup/configuration/advanced/managing-rules.md)
* [**Automated actions**](/administrator-docs/server-setup/configuration/advanced/automations.md)
* [**Inventory logs**](/administrator-docs/server-setup/configuration/advanced/inventory-logs.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://documentation.ocsinventory-ng.org/project-overview/v2-vs-v3-whats-changed.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
