Developer Guide¶
This guide is intended for developers who want to integrate with, extend, or contribute to GeoServer ACL. It covers the architecture, API, and development workflow.
Architecture Overview¶
GeoServer ACL follows a modular architecture with a clean separation of concerns:
- Domain Layer: Contains the core business logic and domain model
- Application Layer: Implements use cases and coordinates the domain objects
- Integration Layer: Connects to external systems and provides persistence
- API Layer: Exposes functionality through REST endpoints
- Plugin Layer: Integrates with GeoServer
For a detailed architecture description, see the Architecture section.
Core Components¶
The main components of GeoServer ACL are:
- Rule Management: Core domain logic for managing data access rules
- Admin Rule Management: Domain logic for managing administrative permissions
- Authorization Service: Logic for evaluating access requests against rules
- REST API: Interface for programmatic access to rules and authorization
- GeoServer Plugin: Integration with GeoServer for enforcing access control
Integration Options¶
Developers can integrate with GeoServer ACL in several ways:
- REST API: Direct HTTP calls to the GeoServer ACL service
- Java Client: Use the provided Java client library
- JavaScript Client: Use the generated JavaScript client
- Python Client: Use the generated Python client
- Custom Client: Generate a client for your language using the OpenAPI specification
Development Setup¶
To set up a development environment for GeoServer ACL:
- Java 17 JDK is required for building
- Clone the repository:
git clone https://github.com/geoserver/geoserver-acl.git - Build with Maven:
./mvnw clean install
For more detailed instructions, see Building from Source.
API Integration¶
The GeoServer ACL API follows OpenAPI 3.0 standards:
- API Documentation: Available at
/api-docswhen the service is running - Swagger UI: Interactive documentation at
/swagger-ui.html - Generated Clients: Available in Java, JavaScript, and Python
For detailed API usage, see API Integration.
Contributing¶
Contributions to GeoServer ACL are welcome! The project follows standard open source practices:
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
For detailed contributing guidelines, see Contributing.