odoo-controller

Implement secure Odoo HTTP controllers with routes and authentication.

1|1|Updated Apr 12, 2026
One-click install
npx skills add https://github.com/halim-23/odoo-dev-plugin --skill odoo-controller
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: odoo-controller
Source: https://github.com/halim-23/odoo-dev-plugin/tree/main/skills/odoo-controller
Command: npx skills add https://github.com/halim-23/odoo-dev-plugin --skill odoo-controller

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill helps developers implement secure, scalable Odoo HTTP controllers and endpoints across versions 17.0, 18.0 and 19.0 (CE/EE), covering route definitions, authentication modes, JSON endpoints, website pages, and portal access.

Core Features & Use Cases

  • Route definitions: Create http.Controller classes with @http.route decorators for HTTP, JSON-RPC, and portal pages.
  • Auth management: Support authentication types such as public, user, and api_key/bearer with proper access control.
  • Endpoint versatility: Build REST-like JSON endpoints, HTML pages, file downloads, and cross-origin resources to integrate frontend apps and external clients.
  • Version coverage: Applies to Odoo 17, 18, and 19 CE/EE with version-specific nuances and diffs.

Quick Start

Create a simple Odoo controller with a single public route and render a template.

Frequently Asked Questions about odoo-controller

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create an Odoo HTTP controller for a REST API endpoint?

To create an Odoo HTTP controller, you define a class inheriting from http.Controller and use the @http.route decorator to map URLs to methods. This supports building REST-like JSON endpoints and HTML pages for external clients.

What authentication methods can I use for Odoo portal routes and APIs?

Odoo controllers support public, user, and token-based api_key or bearer authentication. These modes ensure proper access control for routes handling portal pages, JSON-RPC endpoints, and secure data delivery.

Does this approach support building Odoo controllers across version 17, 18, and 19?

Yes, this implementation applies to Odoo 17.0, 18.0, and 19.0 for both Community and Enterprise editions. It accounts for version-specific nuances and diffs when defining HTTP routes and JSON endpoints.

How do I handle CORS and file downloads in an Odoo web controller?

Odoo web controllers can manage cross-origin resources via CORS and handle file downloads by configuring the @http.route decorator appropriately. This ensures safe data handling for frontend app integrations.

What is the best way to serve JSON-RPC endpoints from an Odoo module?

The best way to serve JSON-RPC endpoints is by creating an http.Controller class with @http.route decorators configured for JSON. This enables scalable communication with external systems and frontend applications.