Ambari Code Layout
Ambari is a Maven multi-module project. The repository separates the server, agent, shared libraries, Web applications, Views, and contribution modules so each build and ownership boundary remains explicit.

The map groups modules by responsibility; arrows show runtime collaboration or packaging relationships rather than Maven's complete dependency graph.
Top-Level Modules
ambari/
ambari-agent/
ambari-common/
ambari-project/
ambari-server/
ambari-server-spi/
ambari-utility/
ambari-views/
ambari-web/
ambari-admin/
contrib/
docs/
| Module | Purpose |
|---|---|
ambari-server | Server APIs, orchestration, persistence, stack processing, and Python server utilities. |
ambari-agent | Agent runtime, command execution, registration, caches, security, and Python packaging. |
ambari-common, ambari-server-spi, ambari-utility | Shared APIs and implementation utilities. |
ambari-web | Primary Ambari Web application. latest contains the React/TypeScript/Vite UI; classic is the historical bundle. |
ambari-admin | Separate Ambari Admin Web application, with its React build under src/main/resources/ui/ambari-admin. |
ambari-views | View framework interfaces, server integration, examples, and package contracts. |
contrib | Optional integrations and maintained third-party contributions. |
docs | Project, architecture, API, and release documentation. |
Java Build
The root Maven build targets JDK 17. ambari-project/pom.xml centralizes managed dependency versions, plugin versions, test settings, and supported module properties. Module POMs inherit those choices; do not introduce an unmanaged version when an existing property or dependency-management entry applies.
The server and shared Java modules use standard Maven source and test layouts. Server REST resources, state, controllers, DAOs, entities, upgrade catalogs, and tests are under ambari-server/src/main and ambari-server/src/test.
Agent And Python
Agent Python sources and tests live under ambari-agent/src/main/python and ambari-agent/src/test/python. The agent pyproject.toml, lock files, and Maven packaging define the supported interpreter, dependencies, wheels, and artifact boundary. Server-side Python utilities follow the corresponding module packaging and test configuration.
React Applications
The primary UI is under ambari-web/latest/src, with route objects in src/router, API clients in src/api, shared state in src/store, and user workflows under src/screens. Its package.json uses Vite, TypeScript, React 19, and Vitest. The separate Admin React application is built and packaged by ambari-admin; it is not a second root inside ambari-web/latest.
Views remain server-hosted extensions. The React shell discovers authorized View instances and opens their server-provided same-origin contexts; View application code belongs in the View package, not in the primary UI module.