Repository navigation
Release 0.23.0: vistas de las apps en maya_apps (D17), Odoo en el catálogo (C1) y adjuntos (C9) - #18
Merged
Merged
Conversation
Las apps leen Odoo solo por vistas del esquema maya_apps de maya_erp, que crea el despliegue de cada app. php artisan maya:views aplica en una transacción las vistas comunes de este paquete (database/views) y las de la app (database/views/*.sql): CREATE OR REPLACE VIEW, COMMENT con dueño y revisión y GRANT SELECT a maya_fdw_reader, como maya_apps_views (conexión maya_apps: host y BD de FDW_ODOO_*, contraseña MAYA_APPS_VIEWS_PASSWORD). - Un fichero = una sentencia CREATE OR REPLACE VIEW maya_apps.<fichero>, con las tablas calificadas (search_path = pg_catalog) y revisión opcional; se valida antes de conectar (--dry-run muestra el SQL). - Una app con un maya_platform más viejo no pisa una vista común con una revisión mayor; una app no redefine las vistas de otra ni las comunes. - Vistas comunes sobre el Odoo 19 de producción (maya_core 945144d), con el usuario por res_users.oauth_uid (D26 R4): v_app_users, v_dms_teams (owner_id = oauth_uid), v_dms_team_members, v_app_user_study_types, v_app_user_studies, v_app_user_course_modules y, en lugar de las tablas de Odoo que se leían tal cual, v_app_study_types, v_app_studies, v_app_subjects, v_app_study_subjects y v_app_languages. Probadas el 15-10 contra el maya_erp de desarrollo en una transacción deshecha: compilan con los permisos de maya_apps_views y maya_fdw_reader las lee; mismas filas que las vistas de maya_infra y que las vistas locales de shared-profile. - README: diseño, contrato, revisiones y qué hacer antes de actualizar módulos de Odoo (borrar las vistas de maya_apps y volver a desplegar).
…_apps (D17) maya_fdw_reader ya no lee tablas de Odoo, solo el esquema maya_apps. Migraciones nuevas (las ya ejecutadas no se tocan), no-op en testing: - users, teams, academic-catalogs, languages: ALTER FOREIGN TABLE … OPTIONS (SET schema_name maya_apps, SET table_name …) hacia v_app_users, v_dms_teams, v_dms_team_members, v_app_study_types, v_app_studies, v_app_subjects, v_app_study_subjects y v_app_languages, con las mismas columnas: las vistas locales no cambian. - academic-assignments: user_study_types, user_studies y user_course_modules pasan a leer v_app_user_* (ya resueltas por oauth_uid en Odoo) por tablas foráneas nuevas; fuera las cinco que leían res_users y otras tablas de Odoo tal cual. down() vuelve al estado de 2026_10_14_000001. Se despliegan con el Job views de maya-common 0.3.0 (php artisan maya:views de shared-platform-laravel). Probado el 15-10 en el maya_erp de desarrollo, en un esquema de prueba y una transacción deshecha: la instalación desde cero de las migraciones del dashboard deja las 14 tablas foráneas apuntando a maya_apps.
views.enabled añade un Job con la imagen worker y php artisan maya:views, hook post-install,pre-upgrade con peso -10 (antes que migrate en cada fase; no pre-install por lo mismo que migrate en 0.2.1: la ServiceAccount del Vault Agent no existe aún en el primer install), y su NetworkPolicy, también hook y antes que él (en un pre-upgrade todavía manda la NetworkPolicy anterior), hacia views.networkPolicy.cidrs o, si está vacío, networkPolicy.egress.cidrs. views.passwordKey (MAYA_APPS_VIEWS_PASSWORD) tiene que estar en vault.keys y solo la recibe el Job views: los demás pods se renderizan sin ella. El Job no monta el PVC de ficheros. Contrato de values nuevo (views.*): 0.3.0. tests/views.sh (fuera del paquete) lo prueba con helm template y kubeconform; con views.enabled=false el render es el mismo que el de 0.2.2.
Campo opcional de las notificaciones (§ 5.1 del estándar): source, model, id, name, mimetype, size y sha256. El fichero no viaja en el mensaje; solo actúa en el canal email: n8n lo descarga de Odoo con su usuario de servicio («Odoo adjuntos», POST /json/2/ir.attachment/read), comprueba el sha256 y lo adjunta; si falla, el mensaje va a dlq.notifications.email. Límites: 10 adjuntos y 15 MiB. Compatible: x-maya-schema-version sigue en 1.
odoo: kind service, publishes [maya.audit, maya.logs, maya.notifications], sin colas. El generador da el usuario odoo en /maya con configure=^$, write=^(maya\.audit|maya\.logs|maya\.notifications)$ y read=^$, y su contraseña en RABBITMQ_PASSWORD_ODOO. Lo necesita el publicador de maya_core (C7).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Publica la 0.23.0.
D17: vistas de lectura en
maya_appsshared-platform-laravel: comandophp artisan maya:views. Aplica en una transacción las vistas comunes (11) y las propias de la app (database/views/*.sql) en el esquemamaya_appsde la BD de Odoo, comomaya_apps_views, conGRANT SELECTamaya_fdw_reader. Tiene--dry-run.shared-profile-laravel: migraciones nuevas que apuntan las tablas foráneas amaya_apps. Las asignaciones académicas se cruzan poroauth_uid; ya no leenres_usersni las tablas demaya_coretal cual.maya-common0.3.0: Jobviews(hookpost-install,pre-upgrade, antes demigrate) con su NetworkPolicy. Se activa conviews.enabledy exigeMAYA_APPS_VIEWS_PASSWORDenvault.keys. Conviews.enabled=falseel render es igual que en 0.2.2.Mensajería
topology.yaml). Usuarioodooen/maya, que solo puede publicar enmaya.audit,maya.logsymaya.notifications.metadata.attachments[](§ 5.1 deESTANDAR.md). No cambiax-maya-schema-version.Pruebas
shared-platform(52),shared-profile(29),shared-auth(75) yshared-http(70) en verde.charts/maya-common/tests/views.sh(helm templateykubeconform) yhelm lint, sin errores.ROLLBACK.