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.