Skip to main content
Version: 3.1.0 (Preview)

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.

Apache Ambari 3.1 repository modules and ownership boundaries

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/
ModulePurpose
ambari-serverServer APIs, orchestration, persistence, stack processing, and Python server utilities.
ambari-agentAgent runtime, command execution, registration, caches, security, and Python packaging.
ambari-common, ambari-server-spi, ambari-utilityShared APIs and implementation utilities.
ambari-webPrimary Ambari Web application. latest contains the React/TypeScript/Vite UI; classic is the historical bundle.
ambari-adminSeparate Ambari Admin Web application, with its React build under src/main/resources/ui/ambari-admin.
ambari-viewsView framework interfaces, server integration, examples, and package contracts.
contribOptional integrations and maintained third-party contributions.
docsProject, 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.