{
  "_class" : "hudson.model.FreeStyleBuild",
  "actions" : [
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "hudson.triggers.TimerTrigger$TimerTriggerCause",
          "shortDescription" : "Started by timer"
        }
      ]
    },
    {
      
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "refs/remotes/origin/dev" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 686,
          "buildResult" : null,
          "marked" : {
            "SHA1" : "06cd5ce97df3aa120a4b7cb608269847d770ca77",
            "branch" : [
              {
                "SHA1" : "06cd5ce97df3aa120a4b7cb608269847d770ca77",
                "name" : "refs/remotes/origin/dev"
              }
            ]
          },
          "revision" : {
            "SHA1" : "06cd5ce97df3aa120a4b7cb608269847d770ca77",
            "branch" : [
              {
                "SHA1" : "06cd5ce97df3aa120a4b7cb608269847d770ca77",
                "name" : "refs/remotes/origin/dev"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "06cd5ce97df3aa120a4b7cb608269847d770ca77",
        "branch" : [
          {
            "SHA1" : "06cd5ce97df3aa120a4b7cb608269847d770ca77",
            "name" : "refs/remotes/origin/dev"
          }
        ]
      },
      "remoteUrls" : [
        "https://github.com/younex1/erp-nuxt-frontend.git"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    
  ],
  "building" : false,
  "description" : null,
  "displayName" : "#686",
  "duration" : 156649,
  "estimatedDuration" : 66945,
  "executor" : null,
  "fullDisplayName" : "build-logship-frontend #686",
  "id" : "686",
  "inProgress" : false,
  "keepLog" : false,
  "number" : 686,
  "queueId" : 5426,
  "result" : "SUCCESS",
  "timestamp" : 1785024000972,
  "url" : "https://jenkins.younex.de/job/build-logship-frontend/686/",
  "builtOn" : "",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "deploy/README.md",
          "deploy/pm2-root.service.d/override.conf"
        ],
        "commitId" : "44842957e3e2056c97262a7688ccd7f46a88a5ae",
        "timestamp" : 1784974171000,
        "author" : {
          "absoluteUrl" : "https://jenkins.younex.de/user/info",
          "fullName" : "info"
        },
        "authorEmail" : "info@younex.de",
        "comment" : "deploy: add pm2 boot-ordering override and server setup notes\u000a\u000apm2 started the frontend at boot before the iDempiere REST API (8443) was\u000aup, causing a ~2 minute 502 storm after every server reboot. Ship the\u000asystemd drop-in (wait for 8443, max 180s) plus notes on pm2-logrotate and\u000acrontab leftovers so the server config stays reproducible.\u000a\u000aCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\u000a",
        "date" : "2026-07-25 12:09:31 +0200",
        "id" : "44842957e3e2056c97262a7688ccd7f46a88a5ae",
        "msg" : "deploy: add pm2 boot-ordering override and server setup notes",
        "paths" : [
          {
            "editType" : "add",
            "file" : "deploy/README.md"
          },
          {
            "editType" : "add",
            "file" : "deploy/pm2-root.service.d/override.conf"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "reference/ci/deploy-production.sh",
          ".gitignore",
          "package-lock.json",
          "reference/ci/latest-working-jenkins-production.sh"
        ],
        "commitId" : "0ba977ce84e6f26c48cf7ab7f64597e8acbed555",
        "timestamp" : 1784978362000,
        "author" : {
          "absoluteUrl" : "https://jenkins.younex.de/user/info",
          "fullName" : "info"
        },
        "authorEmail" : "info@younex.de",
        "comment" : "deploy: commit package-lock.json and switch production install to npm ci\u000a\u000aThe 2026-07-25 production build died in npm's resolver (Arborist\u000a\"Cannot read properties of null (reading 'edgesOut')\") while resolving\u000athe brand-new @vitejs/devtools-vite 0.4.8 published the day before.\u000aRoot cause: package-lock.json was gitignored and the deploy script even\u000adeleted it, so every deploy re-resolved all semver ranges against the\u000alive registry — any bad publish upstream could (and did) break deploys.\u000a\u000a- Track package-lock.json (validated: npm ci passes, linux-x64 platform\u000a  binaries included, AG Grid pinned at 35.2.1)\u000a- Deploy scripts: drop the vestigial patch-package install (no patches/\u000a  dir, not in package.json) and use npm ci instead of a lockfile-less\u000a  npm install\u000a\u000aThe Jenkins job shell step must be updated manually to match\u000areference/ci/latest-working-jenkins-production.sh.\u000a\u000aCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\u000a",
        "date" : "2026-07-25 13:19:22 +0200",
        "id" : "0ba977ce84e6f26c48cf7ab7f64597e8acbed555",
        "msg" : "deploy: commit package-lock.json and switch production install to npm ci",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "reference/ci/deploy-production.sh"
          },
          {
            "editType" : "edit",
            "file" : "reference/ci/latest-working-jenkins-production.sh"
          },
          {
            "editType" : "add",
            "file" : "package-lock.json"
          },
          {
            "editType" : "edit",
            "file" : ".gitignore"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "reference/ci/latest-working-jenkins-production.sh",
          "deploy/README.md",
          "reference/ci/deploy-production.sh"
        ],
        "commitId" : "42a30a35931b0a4f43ad9b57d996859e6f5e4a7a",
        "timestamp" : 1784981345000,
        "author" : {
          "absoluteUrl" : "https://jenkins.younex.de/user/info",
          "fullName" : "info"
        },
        "authorEmail" : "info@younex.de",
        "comment" : "ci: deploy script must not clobber pm2 boot-ordering override\u000a\u000aThe production deploy rewrote /etc/systemd/system/pm2-root.service.d/\u000aoverride.conf with only the Environment lines, wiping the [Unit]\u000aAfter=idempiere.service ordering and the wait-for-8443 ExecStartPre added\u000aon 2026-07-25 (a deploy at 13:31 reverted it before the verification\u000areboot, which reproduced the 502 storm). Write the full drop-in from the\u000adeploy script and document that the script heredoc is the source of truth.\u000aNOTE: the Jenkins job runs a manually pasted copy of this script - it must\u000abe updated there as well.\u000a\u000aCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\u000a",
        "date" : "2026-07-25 14:09:05 +0200",
        "id" : "42a30a35931b0a4f43ad9b57d996859e6f5e4a7a",
        "msg" : "ci: deploy script must not clobber pm2 boot-ordering override",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "deploy/README.md"
          },
          {
            "editType" : "edit",
            "file" : "reference/ci/latest-working-jenkins-production.sh"
          },
          {
            "editType" : "edit",
            "file" : "reference/ci/deploy-production.sh"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "app/pages/partners/partners/[id]/edit.vue",
          "app/pages/materials/products/index.vue",
          "app/components/sales/OrderCardList.vue",
          "server/api/partners/partners/store.post.ts",
          "app/pages/sales/orders/index.vue",
          "app/components/AgGridServer.vue",
          "app/components/materials/ProductForm.vue",
          "app/components/partners/PartnerForm.vue",
          "app/pages/fulfillment/stocks/index.vue",
          "app/components/AgGrid.vue",
          "server/api/partners/partners/update.put.ts",
          "app/composables/useBpartnerFlags.ts",
          "server/api/admin/organizations/ui-flags.get.ts",
          "app/components/sales/OrderDetailRecordLine.vue",
          "app/assets/langs/shared.js"
        ],
        "commitId" : "5b28fd19c39cd19933cfed83cc7afdc4f1f885a0",
        "timestamp" : 1784983414000,
        "author" : {
          "absoluteUrl" : "https://jenkins.younex.de/user/info",
          "fullName" : "info"
        },
        "authorEmail" : "info@younex.de",
        "comment" : "Add HideQty and DisallowExport for limited Roles\u000a",
        "date" : "2026-07-25 14:43:34 +0200",
        "id" : "5b28fd19c39cd19933cfed83cc7afdc4f1f885a0",
        "msg" : "Add HideQty and DisallowExport for limited Roles",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "app/components/sales/OrderCardList.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/components/sales/OrderDetailRecordLine.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/pages/partners/partners/[id]/edit.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/components/partners/PartnerForm.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/components/materials/ProductForm.vue"
          },
          {
            "editType" : "edit",
            "file" : "server/api/partners/partners/update.put.ts"
          },
          {
            "editType" : "add",
            "file" : "app/composables/useBpartnerFlags.ts"
          },
          {
            "editType" : "edit",
            "file" : "app/assets/langs/shared.js"
          },
          {
            "editType" : "edit",
            "file" : "server/api/partners/partners/store.post.ts"
          },
          {
            "editType" : "edit",
            "file" : "app/components/AgGrid.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/pages/fulfillment/stocks/index.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/pages/materials/products/index.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/components/AgGridServer.vue"
          },
          {
            "editType" : "edit",
            "file" : "app/pages/sales/orders/index.vue"
          },
          {
            "editType" : "add",
            "file" : "server/api/admin/organizations/ui-flags.get.ts"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "app/components/partners/PartnerForm.vue"
        ],
        "commitId" : "06cd5ce97df3aa120a4b7cb608269847d770ca77",
        "timestamp" : 1784986454000,
        "author" : {
          "absoluteUrl" : "https://jenkins.younex.de/user/info",
          "fullName" : "info"
        },
        "authorEmail" : "info@younex.de",
        "comment" : "fix permission display\u000a",
        "date" : "2026-07-25 15:34:14 +0200",
        "id" : "06cd5ce97df3aa120a4b7cb608269847d770ca77",
        "msg" : "fix permission display",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "app/components/partners/PartnerForm.vue"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://jenkins.younex.de/user/info",
      "fullName" : "info"
    }
  ]
}