Compare commits
213 Commits
817a5c6876
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| dcfa56bdb9 | |||
| ea92422bb1 | |||
| 2111a5fdc9 | |||
| 6edd20585f | |||
| a9759795c4 | |||
| 32f26a1725 | |||
| 60533beed5 | |||
| 24ced97b6d | |||
| dc1d342799 | |||
| 44d0cb63cf | |||
| ace73fa919 | |||
| 316af4233f | |||
| 36a805c652 | |||
| 460bc3d24a | |||
| ec201fcfb5 | |||
| 914ad46c43 | |||
| b96c546ed3 | |||
| 29b3be41a1 | |||
| 16edf58025 | |||
| 775627f215 | |||
| 4e70fae69b | |||
| 24dd109a21 | |||
| 38b57a00cc | |||
| f8070db95f | |||
| 10e9dc430c | |||
| 6b669ccd9c | |||
| d9a10d98a1 | |||
| e64dc7c013 | |||
| d63138d746 | |||
| 84a28f2d01 | |||
| 9be6614972 | |||
| 9d0db71f6a | |||
| 3cc55436f3 | |||
| 124fde07e0 | |||
| b15d0d7322 | |||
| 0680f332fb | |||
| 46bf310dce | |||
| 0dda6ae744 | |||
| 1b59cdd3a4 | |||
| 56934216f7 | |||
| e8a2ef8b85 | |||
| 6cbffa4ac5 | |||
| 09f16f4e62 | |||
| 461acb2b16 | |||
| 0d05c66a2b | |||
| 096cc18477 | |||
| f3333ce020 | |||
| 8e3d2b3d95 | |||
| 501709546d | |||
| 2b5e77993b | |||
| 6efaffbb17 | |||
| 90ddbca2e7 | |||
| 7a9ea16f48 | |||
| 420826de9b | |||
| dc2d3718fa | |||
| 5013228384 | |||
| 4459742cf0 | |||
| 070c3ee975 | |||
| 8ac92888ad | |||
| 567579ef35 | |||
| 8d90f27514 | |||
| 722b23a321 | |||
| ba48c5307f | |||
| 30d2ec0477 | |||
| d3c6444491 | |||
| 12345c0b64 | |||
| 6833dfc992 | |||
| ac27a286c0 | |||
| a3dba6cc9d | |||
| 320dd47aea | |||
| 712a6eebdf | |||
| f226c5644c | |||
| d605225e48 | |||
| 8e7f1eb098 | |||
| 59c6fd0117 | |||
| 2607fd3026 | |||
| bdb4bfc53d | |||
| c1816c07ff | |||
| 7311372ba8 | |||
| cd53460bec | |||
| 7e15e5d7bc | |||
| 3193e07e47 | |||
| 40bc19aa6f | |||
| 90920e8fba | |||
| f8cf0851a8 | |||
| efdab5bafc | |||
| 700346d809 | |||
| a96b85bc53 | |||
| b23bb0db31 | |||
| 8c0f67ca35 | |||
| 7b6c9bdfbf | |||
| 7b28f4e9ef | |||
| a30eebf5d3 | |||
| 9aa0b31278 | |||
| 33cbb17a0e | |||
| 242ff6277a | |||
| 566754bf2e | |||
| 50b7c9cac5 | |||
| b0ac326752 | |||
| 9572b71592 | |||
| 96c3e4c24a | |||
| aba1668d2c | |||
| 20fc286069 | |||
| 75c0659658 | |||
| 564f0b5add | |||
| 7b630d5c0b | |||
| eb6b9ce388 | |||
| c777395b03 | |||
| c509c7fe28 | |||
| 6f632ecd68 | |||
| fef0303cd6 | |||
| 314ab049bb | |||
| 5277ddfc51 | |||
| b6030de4f4 | |||
| 1084cede04 | |||
| ca866bf8c6 | |||
| 9d793d2205 | |||
| 247010d48f | |||
| 7c40f028c8 | |||
| 65304f61ce | |||
| 6ce4d84fd0 | |||
| 2e05f6eeee | |||
| 577584ef4d | |||
| 360c0163f1 | |||
| bd7bea8db6 | |||
| b1c56ee4bb | |||
| 79f4121311 | |||
| d17edb1f9c | |||
| 8fca201e04 | |||
| b4064e8769 | |||
| 8996da7eb4 | |||
| 5023d4d129 | |||
| 0b0298423e | |||
| a7bde5e4eb | |||
| 50cde2d8d2 | |||
| a6cc17ccb1 | |||
| ebe5c0bd5a | |||
| b8a9aa5132 | |||
| 52089ecdf0 | |||
| d406a92f3d | |||
| 2a6eafa19a | |||
| 00ef72de90 | |||
| 9d9ca63d7c | |||
| f9cfada840 | |||
| c2ae445ea4 | |||
| 2ed6bf4d1f | |||
| 6d27a7aa63 | |||
| 92af7262f6 | |||
| 2133b94a1d | |||
| a7a9aa2874 | |||
| 1283a63b5f | |||
| 25a958d592 | |||
| e1e659f9b1 | |||
| d60c08a281 | |||
| d3e8e94110 | |||
| 2a83f92850 | |||
| dd6c2971f8 | |||
| a19b03b8bf | |||
| c552b9eb1c | |||
| 99b2d762d6 | |||
| 6493e0398a | |||
| be6510f912 | |||
| 006ec1bfc0 | |||
| c6f766089b | |||
| 6c27fa10a6 | |||
| 8198c7a478 | |||
| 45dda3c40a | |||
| 56d21fec84 | |||
| 721813dc29 | |||
| 0ddf67d815 | |||
| 147d189a81 | |||
| e9ff8bb4cb | |||
| 78a5a4a398 | |||
| 66ae443fb8 | |||
| 8f22165951 | |||
| cc3657f66f | |||
| 6392441f1b | |||
| 5eac14062f | |||
| e620397938 | |||
| ac9670d553 | |||
| 6a84da4117 | |||
| fd9d774772 | |||
| 39c31aa1ec | |||
| 1da7b145a9 | |||
| f078cd6ceb | |||
| f90a975a50 | |||
| 4ca20a085e | |||
| 0fe0a8f56a | |||
| 2206a4d4ba | |||
| 70a2ff5e84 | |||
| 0fd777ccbd | |||
| 425f8f5f71 | |||
| d46ef922f3 | |||
| 414a21a287 | |||
| eae9436f6d | |||
| e99c409cad | |||
| 43abbd53f4 | |||
| 17e13d4604 | |||
| eb3fa4dd52 | |||
| a2a8e0ef9f | |||
| 358c41deb4 | |||
| af079b8306 | |||
| 0d1f96333b | |||
| 953af5e0fe | |||
| c59b6a1ec2 | |||
| b102112228 | |||
| 282eab01e1 | |||
| 1d79195d89 | |||
| b9b0cd5c70 | |||
| a09ad8773c | |||
| f264c98fbf | |||
| 38edc6214b | |||
| 2142c06ac3 |
@@ -12,6 +12,9 @@ LOG_LEVEL=debug
|
|||||||
# alpaprod tec apiKey
|
# alpaprod tec apiKey
|
||||||
TEC_API_KEY=api key
|
TEC_API_KEY=api key
|
||||||
|
|
||||||
|
# v1 listener
|
||||||
|
DATABASE_URL_V1=postgresql://ausername:password@localhost:5433/lst_db
|
||||||
|
|
||||||
# postgres connection
|
# postgres connection
|
||||||
DATABASE_HOST=localhost
|
DATABASE_HOST=localhost
|
||||||
DATABASE_PORT=5432
|
DATABASE_PORT=5432
|
||||||
|
|||||||
33
.gitea/ISSUE_TEMPLATE.md
Normal file
33
.gitea/ISSUE_TEMPLATE.md
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
---
|
||||||
|
name: Bug Report
|
||||||
|
about: Report a bug to help us improve.
|
||||||
|
title: "[BUG] "
|
||||||
|
labels: ["bug", "needs-triage"]
|
||||||
|
---
|
||||||
|
|
||||||
|
### Describe the bug
|
||||||
|
|
||||||
|
A clear and concise description of what the bug is.
|
||||||
|
|
||||||
|
### Steps to reproduce
|
||||||
|
|
||||||
|
1. Go to '...'
|
||||||
|
2. Click on '....'
|
||||||
|
3. Scroll down to '....'
|
||||||
|
4. See error
|
||||||
|
|
||||||
|
### Expected behavior
|
||||||
|
|
||||||
|
A clear and concise description of what you expected to happen.
|
||||||
|
|
||||||
|
### Screenshots
|
||||||
|
|
||||||
|
If applicable, add screenshots to help explain your problem.
|
||||||
|
|
||||||
|
### Gitea Version
|
||||||
|
|
||||||
|
e.g., 1.25.0
|
||||||
|
|
||||||
|
### Additional context
|
||||||
|
|
||||||
|
Add any other context about the problem here.
|
||||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -13,6 +13,7 @@ controllerBuilds
|
|||||||
# ignoring the old app that will be built into this one to make deploying faster and more easy as we do the migration
|
# ignoring the old app that will be built into this one to make deploying faster and more easy as we do the migration
|
||||||
lstV2/frontend/.tanstack
|
lstV2/frontend/.tanstack
|
||||||
|
|
||||||
|
keys
|
||||||
# Logs
|
# Logs
|
||||||
logs
|
logs
|
||||||
*.log
|
*.log
|
||||||
|
|||||||
1
.include
1
.include
@@ -1,5 +1,6 @@
|
|||||||
dist
|
dist
|
||||||
frontend/dist
|
frontend/dist
|
||||||
|
mobileLst/dist
|
||||||
lstDocs/build
|
lstDocs/build
|
||||||
migrations
|
migrations
|
||||||
Dockerfile
|
Dockerfile
|
||||||
|
|||||||
48
.vscode/settings copy.json.bak
vendored
48
.vscode/settings copy.json.bak
vendored
@@ -1,48 +0,0 @@
|
|||||||
{
|
|
||||||
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
|
||||||
"workbench.colorTheme": "Default Dark+",
|
|
||||||
"prettier.tabWidth": 4,
|
|
||||||
"terminal.integrated.env.windows": {},
|
|
||||||
"editor.formatOnSave": true,
|
|
||||||
"[javascript]": {
|
|
||||||
"editor.formatOnSave": true
|
|
||||||
},
|
|
||||||
"[javascriptreact]": {
|
|
||||||
"editor.formatOnSave": true
|
|
||||||
},
|
|
||||||
"[typescript]": {
|
|
||||||
"editor.formatOnSave": true
|
|
||||||
},
|
|
||||||
"[typescriptreact]": {
|
|
||||||
"editor.formatOnSave": true
|
|
||||||
},
|
|
||||||
"[json]": {
|
|
||||||
"editor.formatOnSave": true
|
|
||||||
},
|
|
||||||
"[graphql]": {
|
|
||||||
"editor.formatOnSave": true
|
|
||||||
},
|
|
||||||
"[handlebars]": {
|
|
||||||
"editor.formatOnSave": true
|
|
||||||
},
|
|
||||||
"[go]": {
|
|
||||||
"editor.formatOnSave": true,
|
|
||||||
"editor.defaultFormatter": "golang.go"
|
|
||||||
},
|
|
||||||
"[powershell]": {
|
|
||||||
"editor.formatOnSave": true,
|
|
||||||
"editor.defaultFormatter": "ms-vscode.powershell" // requires PowerShell extension
|
|
||||||
},
|
|
||||||
"[bat]": {
|
|
||||||
"editor.formatOnSave": true,
|
|
||||||
"editor.defaultFormatter": "foxundermoon.shell-format" // supports .sh, .bat, .cmd
|
|
||||||
},
|
|
||||||
"[cmd]": {
|
|
||||||
"editor.formatOnSave": true,
|
|
||||||
"editor.defaultFormatter": "foxundermoon.shell-format"
|
|
||||||
},
|
|
||||||
|
|
||||||
// Optional: Configure goimports instead of gofmt
|
|
||||||
"go.formatTool": "goimports",
|
|
||||||
"cSpell.words": ["alpla", "alplamart", "alplaprod", "ppoo"]
|
|
||||||
}
|
|
||||||
71
.vscode/settings.json
vendored
71
.vscode/settings.json
vendored
@@ -1,9 +1,66 @@
|
|||||||
{
|
{
|
||||||
"editor.defaultFormatter": "biomejs.biome",
|
"editor.defaultFormatter": "biomejs.biome",
|
||||||
"workbench.colorTheme": "Default Dark+",
|
"workbench.colorTheme": "Default Dark+",
|
||||||
"terminal.integrated.env.windows": {},
|
"terminal.integrated.env.windows": {},
|
||||||
"editor.formatOnSave": true,
|
"editor.formatOnSave": true,
|
||||||
"editor.codeActionsOnSave": {"source.fixAll.biome": "explicit",
|
"editor.codeActionsOnSave": {
|
||||||
"source.organizeImports.biome": "explicit" },
|
"source.fixAll.biome": "explicit",
|
||||||
"cSpell.words": ["alpla", "alplamart", "alplaprod", "ppoo"]
|
"source.organizeImports.biome": "explicit"
|
||||||
|
},
|
||||||
|
"[javascript]": {
|
||||||
|
"editor.formatOnSave": true
|
||||||
|
},
|
||||||
|
"[javascriptreact]": {
|
||||||
|
"editor.formatOnSave": true
|
||||||
|
},
|
||||||
|
"[typescript]": {
|
||||||
|
"editor.formatOnSave": true
|
||||||
|
},
|
||||||
|
"[typescriptreact]": {
|
||||||
|
"editor.formatOnSave": true
|
||||||
|
},
|
||||||
|
"[json]": {
|
||||||
|
"editor.formatOnSave": true
|
||||||
|
},
|
||||||
|
"[graphql]": {
|
||||||
|
"editor.formatOnSave": true
|
||||||
|
},
|
||||||
|
"[handlebars]": {
|
||||||
|
"editor.formatOnSave": true
|
||||||
|
},
|
||||||
|
"[go]": {
|
||||||
|
"editor.formatOnSave": true,
|
||||||
|
"editor.defaultFormatter": "golang.go"
|
||||||
|
},
|
||||||
|
"[powershell]": {
|
||||||
|
"editor.formatOnSave": true,
|
||||||
|
"editor.defaultFormatter": "ms-vscode.powershell" // requires PowerShell extension
|
||||||
|
},
|
||||||
|
"[bat]": {
|
||||||
|
"editor.formatOnSave": true,
|
||||||
|
"editor.defaultFormatter": "foxundermoon.shell-format" // supports .sh, .bat, .cmd
|
||||||
|
},
|
||||||
|
"[cmd]": {
|
||||||
|
"editor.formatOnSave": true,
|
||||||
|
"editor.defaultFormatter": "foxundermoon.shell-format"
|
||||||
|
},
|
||||||
|
|
||||||
|
// Optional: Configure goimports instead of gofmt
|
||||||
|
"go.formatTool": "goimports",
|
||||||
|
"cSpell.words": [
|
||||||
|
"acitve",
|
||||||
|
"actaully",
|
||||||
|
"alpla",
|
||||||
|
"alplamart",
|
||||||
|
"alplaprod",
|
||||||
|
"autoconsume",
|
||||||
|
"intiallally",
|
||||||
|
"ppoo",
|
||||||
|
"prodlabels",
|
||||||
|
"rfid"
|
||||||
|
],
|
||||||
|
"gitea.token": "8456def90e1c651a761a8711763d6ef225d6b2db",
|
||||||
|
"gitea.instanceURL": "https://git.tuffraid.net",
|
||||||
|
"gitea.owner": "cowch",
|
||||||
|
"gitea.repo": "lst"
|
||||||
}
|
}
|
||||||
|
|||||||
248
CHANGELOG.md
248
CHANGELOG.md
@@ -1,5 +1,253 @@
|
|||||||
# All Changes to LST can be found below.
|
# All Changes to LST can be found below.
|
||||||
|
|
||||||
|
## [1.9.0](https://git.tuffraid.net/cowch/lst/compare/v1.8.0...v1.9.0) (2025-12-03)
|
||||||
|
|
||||||
|
|
||||||
|
### 📝 Chore
|
||||||
|
|
||||||
|
* **module updates:** just updated all the modules ([bdb4bfc](https://git.tuffraid.net/cowch/lst/commits/bdb4bfc53d24f37f0e7098ea828cf418d58d5224))
|
||||||
|
|
||||||
|
|
||||||
|
### 🌟 Enhancements
|
||||||
|
|
||||||
|
* **datamart:** active article moved over to the new version ([8e7f1eb](https://git.tuffraid.net/cowch/lst/commits/8e7f1eb09811fcf3ea49b95b0ba9a8f55b9c4184))
|
||||||
|
* **dm:** added article description into the historical data ([7311372](https://git.tuffraid.net/cowch/lst/commits/7311372ba8eb901b51972ca216152bcfc2b009af))
|
||||||
|
* **swagger:** added in the start of swagger where all the common and useable endpoints will be ([2607fd3](https://git.tuffraid.net/cowch/lst/commits/2607fd3026ed0b5777a5598aa3498ffc67baa012))
|
||||||
|
|
||||||
|
|
||||||
|
### 🛠️ Code Refactor
|
||||||
|
|
||||||
|
* **contorller:** only install npm production modules dont install everything ([c1816c0](https://git.tuffraid.net/cowch/lst/commits/c1816c07ff5ac939b0997d314a9da624a4a66b7a))
|
||||||
|
* **helpercommands:** removed the remove as reusabele ([a3dba6c](https://git.tuffraid.net/cowch/lst/commits/a3dba6cc9db147ff4765fef648867e50878a6ac8))
|
||||||
|
* **quality:** added a check to monior [#7](https://git.tuffraid.net/cowch/lst/issues/7) as well ([6833dfc](https://git.tuffraid.net/cowch/lst/commits/6833dfc9929741203083b01726b83a6c8d61d308))
|
||||||
|
* **sql:** some changes to help with sql connection on random disconnect ([320dd47](https://git.tuffraid.net/cowch/lst/commits/320dd47aea017b4ff219b07e363ef87ec8523b82))
|
||||||
|
* **swagger:** corrected the name displaced ([d605225](https://git.tuffraid.net/cowch/lst/commits/d605225e48bca66f915ce0db448aa61933891986))
|
||||||
|
|
||||||
|
|
||||||
|
### 🐛 Bug fixes
|
||||||
|
|
||||||
|
* **commands:** corrections to allow external labels to be consumed and transfered ([12345c0](https://git.tuffraid.net/cowch/lst/commits/12345c0b6442c3abd309f660bb43216def9abb89))
|
||||||
|
* **dm:** type in customer article number ([f226c56](https://git.tuffraid.net/cowch/lst/commits/f226c5644cc2b93b9d967962bd6f82b3e506c8c0))
|
||||||
|
* **labeling:** added in a catch to avoid rouge lots ([59c6fd0](https://git.tuffraid.net/cowch/lst/commits/59c6fd011728dff50bfa3233d6095c396d0b1999))
|
||||||
|
* **lot transfer:** changes to make it so the reprint and return do not happen instantly ([ac27a28](https://git.tuffraid.net/cowch/lst/commits/ac27a286c07733333703d8421cfa525691363e54))
|
||||||
|
* **lstv2:** added in a close function to stop crashing the server ([712a6ee](https://git.tuffraid.net/cowch/lst/commits/712a6eebdfef0ce2b99155d23422ddc7e5e0daad))
|
||||||
|
|
||||||
|
## [1.8.0](https://git.tuffraid.net/cowch/lst/compare/v1.7.0...v1.8.0) (2025-11-25)
|
||||||
|
|
||||||
|
|
||||||
|
### 📝 Chore
|
||||||
|
|
||||||
|
* **misc:** api doc dates and db changes ([52089ec](https://git.tuffraid.net/cowch/lst/commits/52089ecdf06d9e5983afb6a24953d066a0456949))
|
||||||
|
|
||||||
|
|
||||||
|
### 📈 Project changes
|
||||||
|
|
||||||
|
* **settings:** changes to vs code as it was being way to slow ([5277ddf](https://git.tuffraid.net/cowch/lst/commits/5277ddfc51632651059e35b799ddf2a63d70cb70))
|
||||||
|
|
||||||
|
|
||||||
|
### 📝 Testing Code
|
||||||
|
|
||||||
|
* **android app:** this is the start to the android app ([7b630d5](https://git.tuffraid.net/cowch/lst/commits/7b630d5c0b1175f06c866b1238754e455d3a27c9))
|
||||||
|
* **controller:** added in server port that might night be needed but oh well ([efdab5b](https://git.tuffraid.net/cowch/lst/commits/efdab5bafca2a46d73de7ab1d776d283d5294aa3))
|
||||||
|
* **materials per day:** work on getting this running better ([a30eebf](https://git.tuffraid.net/cowch/lst/commits/a30eebf5d34c77c6c7118faf01776651f8888547))
|
||||||
|
* **mobile:** more testing on ota ([75c0659](https://git.tuffraid.net/cowch/lst/commits/75c0659658cbbb7e983df5538538d6429a325379))
|
||||||
|
* **mobile:** stallion intergration starts ([20fc286](https://git.tuffraid.net/cowch/lst/commits/20fc2860690f59851ca1e0251df84854c9d2ba01))
|
||||||
|
* **mobile:** testing for ota updated on android scanner ([314ab04](https://git.tuffraid.net/cowch/lst/commits/314ab049bb650120489259e920e52fd530f0ce41))
|
||||||
|
* **ti intergration:** added the place holder for intergration of comments for customer ([f8cf085](https://git.tuffraid.net/cowch/lst/commits/f8cf0851a86a6923a8941774efe17f93cb92e984))
|
||||||
|
|
||||||
|
|
||||||
|
### 🛠️ Code Refactor
|
||||||
|
|
||||||
|
* **all server stats:** added a 5 second time out if it dose not reach it just stops ([2133b94](https://git.tuffraid.net/cowch/lst/commits/2133b94a1dd84e16bb5a4b8fe215739a4b355223))
|
||||||
|
* **app:** refactored how we have the pkg.json so we can reduce on size of the app ([90920e8](https://git.tuffraid.net/cowch/lst/commits/90920e8fba4757297e0e42e86f80d5f14434a48e))
|
||||||
|
* **base modules:** removed the log spam ([6d27a7a](https://git.tuffraid.net/cowch/lst/commits/6d27a7aa6395a094d8763ba3fde0bdb81a7e3082))
|
||||||
|
* **cards:** trying to make the cards fit the odd shaped screens better ([33cbb17](https://git.tuffraid.net/cowch/lst/commits/33cbb17a0ede136a9be96e47ba0a7a66468b1ebc))
|
||||||
|
* **forklifts:** more refactoring to improve during production ([8c0f67c](https://git.tuffraid.net/cowch/lst/commits/8c0f67ca351778405279f7e225ee8dae654033f9))
|
||||||
|
* **inv with rn:** now includes batch number for tetra ([1084ced](https://git.tuffraid.net/cowch/lst/commits/1084cede04d43ec2b2c22c43c6e701bad4701981))
|
||||||
|
* **leases:** removed main server until i have a better way to sync them ([6ce4d84](https://git.tuffraid.net/cowch/lst/commits/6ce4d84fd00fa446ccb7d1bbad28680f045fae52))
|
||||||
|
* **ocp page:** using the name of the url now vs the settings ([d406a92](https://git.tuffraid.net/cowch/lst/commits/d406a92f3d5d6a8902164e9182717912debae804))
|
||||||
|
* **ocp:** work around for zechetti 2 until we can monitor more closing ([700346d](https://git.tuffraid.net/cowch/lst/commits/700346d80972e464d0a9ba62bba4dc0ed949cdee))
|
||||||
|
* **quality:** added some new options plus cancel button ([242ff62](https://git.tuffraid.net/cowch/lst/commits/242ff6277a1f407fbed2951d30dd6cf1ee32dd60))
|
||||||
|
* **quality:** more changes to the system to perfect it ([7b28f4e](https://git.tuffraid.net/cowch/lst/commits/7b28f4e9ef32a4fc90a0b4b16953b6cead096cac))
|
||||||
|
* **serverlist:** refactored to also show uptime and other info about the server ([e1e659f](https://git.tuffraid.net/cowch/lst/commits/e1e659f9b14f22474f919350f07b02b45141aa63))
|
||||||
|
* **types:** moved the item type to the sidebar to keep it more clean ([5023d4d](https://git.tuffraid.net/cowch/lst/commits/5023d4d129737cf6e0609592e5606a20a0f3728b))
|
||||||
|
* **wrapper:** removed the logs so its not spamming the server ([b8a9aa5](https://git.tuffraid.net/cowch/lst/commits/b8a9aa5132c7606fcccae8f058a77a11a8ed552a))
|
||||||
|
|
||||||
|
|
||||||
|
### 🐛 Bug fixes
|
||||||
|
|
||||||
|
* **comments:** added new role to put comments in ([1283a63](https://git.tuffraid.net/cowch/lst/commits/1283a63b5fd71fb44f7ec7789f670f8af7eafbb8))
|
||||||
|
* **correction:** the name needed to be correct to have a proper tempalte ([b1c56ee](https://git.tuffraid.net/cowch/lst/commits/b1c56ee4bb32c0dbf86e0164614fb3f1ecaf262d))
|
||||||
|
* **dm:** correction to passing the username over for the importing of the file ([a7a9aa2](https://git.tuffraid.net/cowch/lst/commits/a7a9aa2874ddd1391b56983db51cfabd8e789213))
|
||||||
|
* **dm:** fixes to validate auth before submiting incase someone stays on the page to long ([fef0303](https://git.tuffraid.net/cowch/lst/commits/fef0303cd6fdc9cc8cf9f9f4ad674a8b725691f3))
|
||||||
|
* **file name wrong:** fixed the name of the file for getCompanies ([8996da7](https://git.tuffraid.net/cowch/lst/commits/8996da7eb46a8b5bdfe44ee74a676e701d64fdbf))
|
||||||
|
* **forecast table:** correction to the customer article number ([ebe5c0b](https://git.tuffraid.net/cowch/lst/commits/ebe5c0bd5a883b1cbe87f7f9932fd803e80e7fae))
|
||||||
|
* **historical date:** added so we can have all dates ([9d793d2](https://git.tuffraid.net/cowch/lst/commits/9d793d22051c585ed224bfaf16e2a9b60bb02635))
|
||||||
|
* **historical inv:** corrected the way the date can come over to allow for yyyy-mm-dd or with / ([7c40f02](https://git.tuffraid.net/cowch/lst/commits/7c40f028c88d7fd78ac8ab75c172d808783fc641)), closes [#1](https://git.tuffraid.net/cowch/lst/issues/1)
|
||||||
|
* **historicalinv:** removed the second running one that caused duplicates ([a6cc17c](https://git.tuffraid.net/cowch/lst/commits/a6cc17ccb12b0d99ffdb1d371c5daf3bbb91f7ba))
|
||||||
|
* **label ratio:** correction to the endpoint ([50b7c9c](https://git.tuffraid.net/cowch/lst/commits/50b7c9cac5cd6923b08a8705fc8cb41530ec5b02))
|
||||||
|
* **manual print:** fixed so the print disables ([d3e8e94](https://git.tuffraid.net/cowch/lst/commits/d3e8e941103dc0118066e8790e7c27e5f035a6c5))
|
||||||
|
* **nav:** added missing add card button ([8fca201](https://git.tuffraid.net/cowch/lst/commits/8fca201e0463aba7ecace61f8dfb737e2acf4140))
|
||||||
|
* **ocp:** made corrections to the ocp page in dayton ([92af726](https://git.tuffraid.net/cowch/lst/commits/92af7262f60514501b903f5307d34e9154cc9034))
|
||||||
|
* **plc zeccetti:** changes to improve the timing on the zecetti more to be done ([247010d](https://git.tuffraid.net/cowch/lst/commits/247010d48f10ebb02a1b98c5df101134e8dab250))
|
||||||
|
* **preprint:** added the correct to string for the preprint stuff ([360c016](https://git.tuffraid.net/cowch/lst/commits/360c0163f1d3135d9c1c3788ac53dc8e0757c441))
|
||||||
|
* **prodendpoint:** if we have a real error just report it dont actually crash ([3193e07](https://git.tuffraid.net/cowch/lst/commits/3193e07e4707d055517b15f77ac117fefe07de12))
|
||||||
|
* **quality request:** bug fixes ([6f632ec](https://git.tuffraid.net/cowch/lst/commits/6f632ecd6831456c6e3c9973bc0ce7feb229aeec))
|
||||||
|
* **quality:** corrected url and perms for quality link ([eb6b9ce](https://git.tuffraid.net/cowch/lst/commits/eb6b9ce388c5dea35f95a9403765e7d330b664f9))
|
||||||
|
* **quality:** request was missing the forced selection ([96c3e4c](https://git.tuffraid.net/cowch/lst/commits/96c3e4c24adbdc59d11f7ea43888e1c47d061f90))
|
||||||
|
* **register:** added the ability to put in _ for user name ([aba1668](https://git.tuffraid.net/cowch/lst/commits/aba1668d2cab63a031657fb7c9f2bfb9777fa72a))
|
||||||
|
* **servers:** changed the server name to be unique ([a7bde5e](https://git.tuffraid.net/cowch/lst/commits/a7bde5e4eb41c597f94302dd2d119f7048c18a6f))
|
||||||
|
* **silo adjustments:** added supervisor to see the actual page so it matches the sidbard ([9aa0b31](https://git.tuffraid.net/cowch/lst/commits/9aa0b31278e5f8201acd21774f19ba69709a654d))
|
||||||
|
* **silo commits:** added in email that was now missing due to new authj ([25a958d](https://git.tuffraid.net/cowch/lst/commits/25a958d592d189f896ae0b5f7608d80a6ee2b1e7))
|
||||||
|
* **uom:** correction to how we do the uom check so we dont just look for the space ([ca866bf](https://git.tuffraid.net/cowch/lst/commits/ca866bf8c63e0576e890367d24a47c7ab46cc864))
|
||||||
|
|
||||||
|
|
||||||
|
### 🌟 Enhancements
|
||||||
|
|
||||||
|
* **added in swagger:** added the base for swagger to implement fully later ([9d9ca63](https://git.tuffraid.net/cowch/lst/commits/9d9ca63d7c9ab3e3ea168cf2add9c7baf2b9ed15))
|
||||||
|
* **articles:** moved articles over to the main server ([2a6eafa](https://git.tuffraid.net/cowch/lst/commits/2a6eafa19a97f0be01f63c68b63b4abfc4de1409))
|
||||||
|
* **barcode gen:** added the missing link ([b4064e8](https://git.tuffraid.net/cowch/lst/commits/b4064e87691937ad9f99441767b556a167b91055))
|
||||||
|
* **db manual fixes:** added a way to fix manual db changes as needed ([0b02984](https://git.tuffraid.net/cowch/lst/commits/0b0298423ed75eed6d112a04dda998b8a23b20ea))
|
||||||
|
* **dm:** new endpoint to get the forecast data ([a96b85b](https://git.tuffraid.net/cowch/lst/commits/a96b85bc536809d223dd7a29150d1a4d632e80da))
|
||||||
|
* **forecast data:** added in a historical forecast data set ([c2ae445](https://git.tuffraid.net/cowch/lst/commits/c2ae445ea4d26b047a2ee5d16041ed230f7b2061))
|
||||||
|
* **forklifts:** added backend forklift stuff and frontend companies ([50cde2d](https://git.tuffraid.net/cowch/lst/commits/50cde2d8d2aa24796db1f1c0126ef8c373614d5d))
|
||||||
|
* **forklifts:** added the ability to add new forklifts in ([7b6c9bd](https://git.tuffraid.net/cowch/lst/commits/7b6c9bdfbf2cf9d97c8e23d8ebd6523e32284963))
|
||||||
|
* **forklifts:** added the crud ([577584e](https://git.tuffraid.net/cowch/lst/commits/577584ef4dd10ee7f57ab0ad0d6261adddaf8966))
|
||||||
|
* **form stuff:** added in a searchable dropdown and added to new forklifts ([b23bb0d](https://git.tuffraid.net/cowch/lst/commits/b23bb0db31f78f46ffc556577cadb62e0bfa3b83))
|
||||||
|
* **invoice form:** added new invoice form ([65304f6](https://git.tuffraid.net/cowch/lst/commits/65304f61ceb3ad4655757aa5c291ac4ed77db048))
|
||||||
|
* **invoices:** added invoice + linking to forklift ([2e05f6e](https://git.tuffraid.net/cowch/lst/commits/2e05f6eeee052a92095098c73ace0bd331c43b22))
|
||||||
|
* **leases:** added in leases and move table to reuseable component ([bd7bea8](https://git.tuffraid.net/cowch/lst/commits/bd7bea8db697f5b025b8d93f86677a9a69cdf2b4))
|
||||||
|
* **listeners:** added in a new feature to auto add new listeners ([f9cfada](https://git.tuffraid.net/cowch/lst/commits/f9cfada8409b3a88323dafa80730c5565c067da8))
|
||||||
|
* **materials per day:** more work on materials per day ([564f0b5](https://git.tuffraid.net/cowch/lst/commits/564f0b5addd109018a806edd6a1fed4399ea63aa))
|
||||||
|
* **migration:** settings migration from old app all is now in the new app ([40bc19a](https://git.tuffraid.net/cowch/lst/commits/40bc19aa6f952a7a60b5ee8281fa159ca114161f))
|
||||||
|
* **missing inv:** adding a way to check for missing data in case it dose pull on the correct days ([d17edb1](https://git.tuffraid.net/cowch/lst/commits/d17edb1f9c830a2c17d28bd9180d264607d66fa2))
|
||||||
|
* **mobile:** ota updates added ([b6030de](https://git.tuffraid.net/cowch/lst/commits/b6030de4f44e73ce8bb9152886d384b9d7f2edff))
|
||||||
|
* **notify:** material per day for the next 90 days ([c509c7f](https://git.tuffraid.net/cowch/lst/commits/c509c7fe286a43ab0ffbf86635631477237632b5))
|
||||||
|
* **quality:** added in comments ([566754b](https://git.tuffraid.net/cowch/lst/commits/566754bf2ecfc390bc927b48aadb2fa934353769))
|
||||||
|
* **quality:** added location moved to to the table ([9572b71](https://git.tuffraid.net/cowch/lst/commits/9572b7159235c18617ff46058c94dfd9cfab8abc))
|
||||||
|
* **quality:** priority ranking added ([c777395](https://git.tuffraid.net/cowch/lst/commits/c777395b0350f60bd457c3164ed1ae478249df3a))
|
||||||
|
* **scroll view:** added in a scroll view to for quality so it dose not go over the end of the page ([b0ac326](https://git.tuffraid.net/cowch/lst/commits/b0ac326752331ab01ad981fa7b1022e82beab143))
|
||||||
|
* **servers:** added a link to the server by clicking on the name and the gp code ([00ef72d](https://git.tuffraid.net/cowch/lst/commits/00ef72de90e43c12bd3fecdc08dfa1e3a4f881fb))
|
||||||
|
* **settings:** added in dyco printing settings ([2ed6bf4](https://git.tuffraid.net/cowch/lst/commits/2ed6bf4d1f32f9a92712ccb36d4a4146ca112e85))
|
||||||
|
* **settings:** final migration of settings and edits added ([7e15e5d](https://git.tuffraid.net/cowch/lst/commits/7e15e5d7bcdf58f31bd96564be1f213d01d37cda))
|
||||||
|
* **start of server:** added the start of server data ([d60c08a](https://git.tuffraid.net/cowch/lst/commits/d60c08a281cd63f2183381a1a19c5e196b41fbc5))
|
||||||
|
* **templates:** added bug repot template ([79f4121](https://git.tuffraid.net/cowch/lst/commits/79f4121311df733f5dc59b32a6b32c1b4a32f97b))
|
||||||
|
|
||||||
|
## [1.7.0](https://git.tuffraid.net/cowch/lst/compare/v1.6.0...v1.7.0) (2025-10-30)
|
||||||
|
|
||||||
|
|
||||||
|
### 📚 Documentation
|
||||||
|
|
||||||
|
* **api:** more old version stuff ([78a5a4a](https://git.tuffraid.net/cowch/lst/commits/78a5a4a398f8c0840e4aaffe62383d2d2fa0908a))
|
||||||
|
|
||||||
|
|
||||||
|
### 🐛 Bug fixes
|
||||||
|
|
||||||
|
* **dm:** corrected the permissions needed to view this page ([8198c7a](https://git.tuffraid.net/cowch/lst/commits/8198c7a47834466515b9446eaca105f37346a4a3))
|
||||||
|
* **export inv:** added the button to exprot data ([6392441](https://git.tuffraid.net/cowch/lst/commits/6392441f1b8330c33b0126942ab6bf21a8bb7bdc))
|
||||||
|
* **login:** redirect back to profile is ignored so it will not cause confusion ([56d21fe](https://git.tuffraid.net/cowch/lst/commits/56d21fec8439c038cb3625c8537cf4f5b2912ef6))
|
||||||
|
* **proxy:** changes to allow multiple onsite instances ([cc3657f](https://git.tuffraid.net/cowch/lst/commits/cc3657f66fcc07785e786fb16dec9009a8e9a103))
|
||||||
|
* **sidebar:** changed from module to name to have tighter control ([6c27fa1](https://git.tuffraid.net/cowch/lst/commits/6c27fa10a68e624033a0e80a33305844f007793d))
|
||||||
|
* **silo adjustment:** change the module to name for checking access ([c6f7660](https://git.tuffraid.net/cowch/lst/commits/c6f766089bd1b1a13bd8d92fa31e149ea4a7ec72))
|
||||||
|
* **siloadjustmnets:** corrected the silo adjustments to account for removed middleware ([e9ff8bb](https://git.tuffraid.net/cowch/lst/commits/e9ff8bb4cb11381aaa86f20d5882ce90f28d4783))
|
||||||
|
|
||||||
|
|
||||||
|
### 📈 Project changes
|
||||||
|
|
||||||
|
* **ts query:** added in the debugger for this ([6493e03](https://git.tuffraid.net/cowch/lst/commits/6493e0398ace860990d675aa42664cd172849a96))
|
||||||
|
|
||||||
|
|
||||||
|
### 🌟 Enhancements
|
||||||
|
|
||||||
|
* **dashboard:** added notification on use of old version ([721813d](https://git.tuffraid.net/cowch/lst/commits/721813dc299aeef651e3f46487b94fc1c59019e9))
|
||||||
|
* **modules:** modules added to frontend ([c552b9e](https://git.tuffraid.net/cowch/lst/commits/c552b9eb1c23074fcb73970acb192c8a58b9f423))
|
||||||
|
* **user migration:** user migration to the new app with a default password that will force reset ([006ec1b](https://git.tuffraid.net/cowch/lst/commits/006ec1bfc03733a14512eed5344b352ed503a99e))
|
||||||
|
* **user stuff:** added in all the user stuff ([0ddf67d](https://git.tuffraid.net/cowch/lst/commits/0ddf67d815dd8a0a87661acb9cdbfb9442bc9672))
|
||||||
|
|
||||||
|
|
||||||
|
### 🛠️ Code Refactor
|
||||||
|
|
||||||
|
* **datamart:** added in av and alias to the query ([dd6c297](https://git.tuffraid.net/cowch/lst/commits/dd6c2971f8d4ab05e9bcafc53e491ee893cb2717))
|
||||||
|
* **invhist:** reformated file ([be6510f](https://git.tuffraid.net/cowch/lst/commits/be6510f91207e913e15a60d59401fcfc21e918f8))
|
||||||
|
* **logins:** added a proper redirect to the last place you were ([45dda3c](https://git.tuffraid.net/cowch/lst/commits/45dda3c40a97a51fb8620fa2081d99989e95475c))
|
||||||
|
* **lottransfer:** formatting changes ([a19b03b](https://git.tuffraid.net/cowch/lst/commits/a19b03b8bfdac7114e61c8590e446d290f87e365))
|
||||||
|
* **materials:** added in if staged just pass the check ([147d189](https://git.tuffraid.net/cowch/lst/commits/147d189a81682b4832cbf802b79fed26576e405f))
|
||||||
|
* **modules:** moved modules to app to control everything based on there active setting ([99b2d76](https://git.tuffraid.net/cowch/lst/commits/99b2d762d6b14aadec3c280f3415b5a196b11c50))
|
||||||
|
* **printers:** allowed for more logging to come over ([66ae443](https://git.tuffraid.net/cowch/lst/commits/66ae443fb8c920d83fb58aab52ef1c8f7071749b))
|
||||||
|
* **v1 middle ware:** removed the need for this and just let it all pass ([8f22165](https://git.tuffraid.net/cowch/lst/commits/8f221659514644fd571108e0ec1233dbecb6e52a))
|
||||||
|
|
||||||
|
## [1.6.0](https://git.tuffraid.net/cowch/lst/compare/v1.5.0...v1.6.0) (2025-10-26)
|
||||||
|
|
||||||
|
|
||||||
|
### 📝 Testing Code
|
||||||
|
|
||||||
|
* **dock schedule fail:** failed attempt ad doing a dock schedule but leaving in here ([817a5c6](https://git.tuffraid.net/cowch/lst/commits/817a5c6876b338e4e0347eed94d0c2d9507e7ba3))
|
||||||
|
|
||||||
|
|
||||||
|
### 📈 Project changes
|
||||||
|
|
||||||
|
* **added biome linter in:** added in biom linter to assist ([2023c2f](https://git.tuffraid.net/cowch/lst/commits/2023c2fc35f8d57a6884d82b3710a03f3ccc57e7))
|
||||||
|
* **app:** config changes to bruno and incoming sqls ([f264c98](https://git.tuffraid.net/cowch/lst/commits/f264c98fbfccd4f1eb6dfdcb28b69903711a9e2b))
|
||||||
|
* **settings:** settings for biome ([dfff8fc](https://git.tuffraid.net/cowch/lst/commits/dfff8fc1667a5199a9f92bdbf7df1a1b19606b82))
|
||||||
|
|
||||||
|
|
||||||
|
### 📚 Documentation
|
||||||
|
|
||||||
|
* **api:** bruno endpoint saves ([705f29e](https://git.tuffraid.net/cowch/lst/commits/705f29e908b75e8ba8d09a9fc4a2b5745460babb))
|
||||||
|
* **bruno:** preprint in app added ([a2a8e0e](https://git.tuffraid.net/cowch/lst/commits/a2a8e0ef9f7086ba9d32bc4ec05a61e6904bfecc))
|
||||||
|
|
||||||
|
|
||||||
|
### 🛠️ Code Refactor
|
||||||
|
|
||||||
|
* **biome:** format changes ([dbe84d5](https://git.tuffraid.net/cowch/lst/commits/dbe84d5325291fb51f971426ec521c91eafa3537))
|
||||||
|
* **biome:** formats from biome ([27fa456](https://git.tuffraid.net/cowch/lst/commits/27fa45614e604a768c49dc4489fbf7a671364a7b))
|
||||||
|
* **biome:** more format changes ([255ceaa](https://git.tuffraid.net/cowch/lst/commits/255ceaab856e72435bbc3ebad37fb82c036f5208))
|
||||||
|
* **front end:** login fixes to account for the forced password change ([e99c409](https://git.tuffraid.net/cowch/lst/commits/e99c409cad049f781d4a52864f40264146a2bb49))
|
||||||
|
* **frontend:** tempt to stop the popup when redrected or coming to the page with no auth ([0fd777c](https://git.tuffraid.net/cowch/lst/commits/0fd777ccbdab2e8de8dcc02c134e01390bbc0d0a))
|
||||||
|
* **login:** added in a check for lastlogin and force reset password ([17e13d4](https://git.tuffraid.net/cowch/lst/commits/17e13d4604787d1473ae1e24ad4e9479087f6dce))
|
||||||
|
* **material checks:** added proper logging to capture it all for auditing later ([26b769f](https://git.tuffraid.net/cowch/lst/commits/26b769f4776df2833e3f27b02e5eedbc9f8693a6))
|
||||||
|
* **old app:** login migration to new app ([eb3fa4d](https://git.tuffraid.net/cowch/lst/commits/eb3fa4dd528427da49e2212bfa304ef9cdb06cc2))
|
||||||
|
* **plc connection zechetti:** added in more logging due to a weird issue with line 7 not sendin ([38edc62](https://git.tuffraid.net/cowch/lst/commits/38edc6214b353841a3414a66553446d4008ad54a))
|
||||||
|
* **printdelay:** added in a change to allow override the actualy time ([c59b6a1](https://git.tuffraid.net/cowch/lst/commits/c59b6a1ec27ecb8e5b6b08c8db7aee5bcb060801))
|
||||||
|
* **stats:** added in ram useage to the stats ([b9b0cd5](https://git.tuffraid.net/cowch/lst/commits/b9b0cd5c7010726532ef56ddab714308c8045b94))
|
||||||
|
* **wrapper:** changes to allow both controller and app to connect via wss:// ([da11270](https://git.tuffraid.net/cowch/lst/commits/da1127057cd766ec72316dee1ffcb11aed77904b))
|
||||||
|
|
||||||
|
|
||||||
|
### 🌟 Enhancements
|
||||||
|
|
||||||
|
* **admin:** users and roles added to the frontend to manage easier ([2142c06](https://git.tuffraid.net/cowch/lst/commits/2142c06ac3900aa70f1cf672b5a64102ed1c574f))
|
||||||
|
* **app:** order schdeuler ([94e1198](https://git.tuffraid.net/cowch/lst/commits/94e1198f6305751af7662a63e0ac21ac04f805d1))
|
||||||
|
* **frontend:** migrated old > new silo adjustments ([425f8f5](https://git.tuffraid.net/cowch/lst/commits/425f8f5f71d1dae1cf3a5d0307b3a2faeadb54b5))
|
||||||
|
* **labeling:** added printers and machine and other data for preprinting ([953af5e](https://git.tuffraid.net/cowch/lst/commits/953af5e0fea4cf0738a2bbfd3ee6ec46182b83dd))
|
||||||
|
* **labels:** added listener for old app to push all labels to the new app ([af079b8](https://git.tuffraid.net/cowch/lst/commits/af079b83069560f0a0d6f19c396a8238fba25e94))
|
||||||
|
* **migration:** dashboard migrated over ([2206a4d](https://git.tuffraid.net/cowch/lst/commits/2206a4d4baefdd770c83a03d68c9f5ac8f55a4c3))
|
||||||
|
* **migration:** dm moved ([ac9670d](https://git.tuffraid.net/cowch/lst/commits/ac9670d55340a3cc8e45d13ac1c09a056d06d1dd))
|
||||||
|
* **migration:** moved barcode generator ([fd9d774](https://git.tuffraid.net/cowch/lst/commits/fd9d774772aabb63fd69fe70302444fd2088d960))
|
||||||
|
* **migration:** moved changed log and properly added in the link to it ([0fe0a8f](https://git.tuffraid.net/cowch/lst/commits/0fe0a8f56a9833de1de4f8ba49f1d06b31e42ee8))
|
||||||
|
* **migration:** moved helper commands ([39c31aa](https://git.tuffraid.net/cowch/lst/commits/39c31aa1ec61231737cc4e7c3c33331ab562a808))
|
||||||
|
* **migration:** moved material helper over ([1da7b14](https://git.tuffraid.net/cowch/lst/commits/1da7b145a942dd64891511a8a63160748800de87))
|
||||||
|
* **migration:** moved ocp, ocme, wrapper stuff ([4ca20a0](https://git.tuffraid.net/cowch/lst/commits/4ca20a085efcb795bc312abff649a53132deac05))
|
||||||
|
* **migration:** moved rfid page ([f90a975](https://git.tuffraid.net/cowch/lst/commits/f90a975a5020a262109552019a13ead71271396c))
|
||||||
|
* **preprint:** added in preprint function to help with operations planning constraints ([282eab0](https://git.tuffraid.net/cowch/lst/commits/282eab01e15f81bcc407f45f1f3ffff056e0f27a))
|
||||||
|
* **settings:** added in settings ([a09ad87](https://git.tuffraid.net/cowch/lst/commits/a09ad8773c77b7b23ce98b3b3f6ce6122842f3ff))
|
||||||
|
* **v1 logger:** added in a logger to monitor the old app ([1d79195](https://git.tuffraid.net/cowch/lst/commits/1d79195d89cc31192c9998ef2b2f8ea501aff41e))
|
||||||
|
|
||||||
|
|
||||||
|
### 🐛 Bug fixes
|
||||||
|
|
||||||
|
* **admin:** corrections to sending over to test server for updates ([7964cda](https://git.tuffraid.net/cowch/lst/commits/7964cda197e42f2eadea3e636c2d910cb34c97bc))
|
||||||
|
* **barcodes:** moved to correct folder ([6a84da4](https://git.tuffraid.net/cowch/lst/commits/6a84da411770986f6f4c2088ebae169c688b28c1))
|
||||||
|
* **controller:** changed to actaully update both main and old app ([0d1f963](https://git.tuffraid.net/cowch/lst/commits/0d1f96333b11e6a2323e25552c10cc85d3c425af))
|
||||||
|
* **controller:** fix for updating iowa2 server ([358c41d](https://git.tuffraid.net/cowch/lst/commits/358c41deb41d418c5b1c6040269f2ed74e1782ff))
|
||||||
|
* **dmbuttons:** missed the uncomment here ([e620397](https://git.tuffraid.net/cowch/lst/commits/e62039793870a4d4b1f67adf256a9db2f6027e37))
|
||||||
|
* **loginform:** bug where the reset errror was not properly coming over ([414a21a](https://git.tuffraid.net/cowch/lst/commits/414a21a28719b50f61cc41056efc9b599491e048))
|
||||||
|
* **loginform:** error with password reset ([eae9436](https://git.tuffraid.net/cowch/lst/commits/eae9436f6d3aa8424043a426d5bbcc764967b3b6))
|
||||||
|
* **misc:** changes to several files for formatting ([b102112](https://git.tuffraid.net/cowch/lst/commits/b102112228bbf58b12bbca19cdf99483517b784d))
|
||||||
|
* **ocme:** corrected the urls for ocme ([f078cd6](https://git.tuffraid.net/cowch/lst/commits/f078cd6ceb9039e1f6e9b31f3e33ad446e65dd87))
|
||||||
|
* **old app:** correction for dev redirect if on localhost to be proper now ([70a2ff5](https://git.tuffraid.net/cowch/lst/commits/70a2ff5e845d9a8c460f4810f8de741fae32ad96))
|
||||||
|
* **printers:** missing logs for errors ([43abbd5](https://git.tuffraid.net/cowch/lst/commits/43abbd53f421988a13cbf8974a49d5ae5cbba1b9))
|
||||||
|
* **silos:** added only active machines, and ordered by location in asending ([d46ef92](https://git.tuffraid.net/cowch/lst/commits/d46ef922f3a6ddc36d5ddfcd94d424745f473a16))
|
||||||
|
|
||||||
## [1.5.0](https://git.tuffraid.net/cowch/lst/compare/v1.4.0...v1.5.0) (2025-10-07)
|
## [1.5.0](https://git.tuffraid.net/cowch/lst/compare/v1.4.0...v1.5.0) (2025-10-07)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
meta {
|
meta {
|
||||||
name: Controller
|
name: Controller
|
||||||
seq: 1
|
seq: 2
|
||||||
}
|
}
|
||||||
|
|
||||||
auth {
|
auth {
|
||||||
|
|||||||
32
LogisticsSupportTool_API_DOCS/LstV2/Auth/Get Roles.bru
Normal file
32
LogisticsSupportTool_API_DOCS/LstV2/Auth/Get Roles.bru
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
meta {
|
||||||
|
name: Get Roles
|
||||||
|
type: http
|
||||||
|
seq: 2
|
||||||
|
}
|
||||||
|
|
||||||
|
get {
|
||||||
|
url: {{urlv2}}/api/auth/getuseraccess
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
headers {
|
||||||
|
Content-Type: application/json
|
||||||
|
Cookie: {{session_cookie}}
|
||||||
|
}
|
||||||
|
|
||||||
|
body:json {
|
||||||
|
{
|
||||||
|
"username": "matthes01",
|
||||||
|
"password": "{{v2Password}}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
script:post-response {
|
||||||
|
bru.setEnvVar("jwtV2",res.body.token)
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
@@ -22,9 +22,19 @@ body:json {
|
|||||||
}
|
}
|
||||||
|
|
||||||
script:post-response {
|
script:post-response {
|
||||||
bru.setEnvVar("jwtV2",res.body.token)
|
// grab the raw Set-Cookie header
|
||||||
|
const cookies = res.headers["set-cookie"];
|
||||||
|
|
||||||
|
// cookies is usually an array, e.g. ["auth_session=abcd123; Path=/; HttpOnly; Secure; SameSite=Lax"]
|
||||||
|
|
||||||
|
// Extract just the value part ("auth_session=abcd123")
|
||||||
|
const sessionCookie = cookies[0].split(";")[0];
|
||||||
|
|
||||||
|
// Save it as an environment variable
|
||||||
|
bru.setEnvVar("session_cookie", sessionCookie);
|
||||||
}
|
}
|
||||||
|
|
||||||
settings {
|
settings {
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
}
|
}
|
||||||
|
|||||||
20
LogisticsSupportTool_API_DOCS/LstV2/EOM/Get Inv.bru
Normal file
20
LogisticsSupportTool_API_DOCS/LstV2/EOM/Get Inv.bru
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
meta {
|
||||||
|
name: Get Inv
|
||||||
|
type: http
|
||||||
|
seq: 2
|
||||||
|
}
|
||||||
|
|
||||||
|
get {
|
||||||
|
url: {{url}}/lst/old/api/eom/histinv?month=2025/11/1
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
params:query {
|
||||||
|
month: 2025/11/1
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
meta {
|
||||||
|
name: Error logging
|
||||||
|
type: http
|
||||||
|
seq: 4
|
||||||
|
}
|
||||||
|
|
||||||
|
get {
|
||||||
|
url: {{urlv2}}/api/notify/toomanyerrors
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
meta {
|
||||||
|
name: materialPerDay
|
||||||
|
type: http
|
||||||
|
seq: 2
|
||||||
|
}
|
||||||
|
|
||||||
|
get {
|
||||||
|
url: {{urlv2}}/api/notify/materialperday
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
meta {
|
||||||
|
name: ti Intergration
|
||||||
|
type: http
|
||||||
|
seq: 3
|
||||||
|
}
|
||||||
|
|
||||||
|
get {
|
||||||
|
url: {{urlv2}}/api/notify/tiTrigger
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
25
LogisticsSupportTool_API_DOCS/LstV2/Quality/Add pallet.bru
Normal file
25
LogisticsSupportTool_API_DOCS/LstV2/Quality/Add pallet.bru
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
meta {
|
||||||
|
name: Add pallet
|
||||||
|
type: http
|
||||||
|
seq: 2
|
||||||
|
}
|
||||||
|
|
||||||
|
post {
|
||||||
|
url: {{url}}/lst/old/api/quality/newrequest
|
||||||
|
body: json
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
body:json {
|
||||||
|
{
|
||||||
|
"username": "matthes01",
|
||||||
|
"runningNr": 618302,
|
||||||
|
"palletStatusText":"return" // returned will be the only allowed key
|
||||||
|
//"moveTo": "hold area" //hold area, rework, inspection
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
16
LogisticsSupportTool_API_DOCS/LstV2/Quality/Get Pallets.bru
Normal file
16
LogisticsSupportTool_API_DOCS/LstV2/Quality/Get Pallets.bru
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
meta {
|
||||||
|
name: Get Pallets
|
||||||
|
type: http
|
||||||
|
seq: 1
|
||||||
|
}
|
||||||
|
|
||||||
|
get {
|
||||||
|
url: {{url}}/lst/old/api/quality/getrequest
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
8
LogisticsSupportTool_API_DOCS/LstV2/Quality/folder.bru
Normal file
8
LogisticsSupportTool_API_DOCS/LstV2/Quality/folder.bru
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
meta {
|
||||||
|
name: Quality
|
||||||
|
seq: 7
|
||||||
|
}
|
||||||
|
|
||||||
|
auth {
|
||||||
|
mode: inherit
|
||||||
|
}
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
meta {
|
||||||
|
name: CreateSilo Adjustment
|
||||||
|
type: http
|
||||||
|
seq: 3
|
||||||
|
}
|
||||||
|
|
||||||
|
post {
|
||||||
|
url: {{url}}/lst/old/api/logistics/createsiloadjustment
|
||||||
|
body: json
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
body:json {
|
||||||
|
{
|
||||||
|
"warehouseId": 51,
|
||||||
|
"quantity": 60575,
|
||||||
|
"laneId": 31717,
|
||||||
|
"username":"matthes01"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
meta {
|
||||||
|
name: Machine Connections
|
||||||
|
type: http
|
||||||
|
seq: 2
|
||||||
|
}
|
||||||
|
|
||||||
|
post {
|
||||||
|
url: {{url}}/lst/old/api/logistics/siloconnection
|
||||||
|
body: json
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
body:json {
|
||||||
|
{
|
||||||
|
"siloID": "35010",
|
||||||
|
"connectionType": "connected"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
16
LogisticsSupportTool_API_DOCS/LstV2/Warehouse/PPOO.bru
Normal file
16
LogisticsSupportTool_API_DOCS/LstV2/Warehouse/PPOO.bru
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
meta {
|
||||||
|
name: PPOO
|
||||||
|
type: http
|
||||||
|
seq: 1
|
||||||
|
}
|
||||||
|
|
||||||
|
get {
|
||||||
|
url: {{url}}/lst/old/api/logistics/getppoo
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
8
LogisticsSupportTool_API_DOCS/LstV2/Warehouse/folder.bru
Normal file
8
LogisticsSupportTool_API_DOCS/LstV2/Warehouse/folder.bru
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
meta {
|
||||||
|
name: Warehouse
|
||||||
|
seq: 5
|
||||||
|
}
|
||||||
|
|
||||||
|
auth {
|
||||||
|
mode: inherit
|
||||||
|
}
|
||||||
22
LogisticsSupportTool_API_DOCS/LstV2/Warehouse/sscc.bru
Normal file
22
LogisticsSupportTool_API_DOCS/LstV2/Warehouse/sscc.bru
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
meta {
|
||||||
|
name: sscc
|
||||||
|
type: http
|
||||||
|
seq: 4
|
||||||
|
}
|
||||||
|
|
||||||
|
post {
|
||||||
|
url: {{url}}/lst/old/api/logistics/getsscc
|
||||||
|
body: json
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
body:json {
|
||||||
|
{
|
||||||
|
"runningNr": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
meta {
|
||||||
|
name: PSI - Forecast data
|
||||||
|
type: http
|
||||||
|
seq: 1
|
||||||
|
}
|
||||||
|
|
||||||
|
get {
|
||||||
|
url: {{url}}/lst/old/api/datamart/psiforecastdata?customer=8
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
params:query {
|
||||||
|
customer: 8
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
meta {
|
||||||
|
name: PSI -planning data
|
||||||
|
type: http
|
||||||
|
seq: 2
|
||||||
|
}
|
||||||
|
|
||||||
|
get {
|
||||||
|
url: {{url}}/lst/old/api/datamart/psiplanningdata?avs=118,120&startDate=12/1/2025&endDate=12/31/2026
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
params:query {
|
||||||
|
avs: 118,120
|
||||||
|
startDate: 12/1/2025
|
||||||
|
endDate: 12/31/2026
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
8
LogisticsSupportTool_API_DOCS/LstV2/datamart/folder.bru
Normal file
8
LogisticsSupportTool_API_DOCS/LstV2/datamart/folder.bru
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
meta {
|
||||||
|
name: datamart
|
||||||
|
seq: 8
|
||||||
|
}
|
||||||
|
|
||||||
|
auth {
|
||||||
|
mode: inherit
|
||||||
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
meta {
|
meta {
|
||||||
name: LstV2
|
name: LstV2
|
||||||
seq: 3
|
seq: 4
|
||||||
}
|
}
|
||||||
|
|
||||||
auth {
|
auth {
|
||||||
|
|||||||
26
LogisticsSupportTool_API_DOCS/LstV2/ocp/Logs.bru
Normal file
26
LogisticsSupportTool_API_DOCS/LstV2/ocp/Logs.bru
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
meta {
|
||||||
|
name: Logs
|
||||||
|
type: http
|
||||||
|
seq: 2
|
||||||
|
}
|
||||||
|
|
||||||
|
get {
|
||||||
|
url: {{url}}/lst/old/api/logger/logs?service=ocp&service=rfid&service=dyco&level=error&level=info&level=warn&hours=12
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
params:query {
|
||||||
|
service: ocp
|
||||||
|
service: rfid
|
||||||
|
service: dyco
|
||||||
|
level: error
|
||||||
|
level: info
|
||||||
|
level: warn
|
||||||
|
hours: 12
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
8
LogisticsSupportTool_API_DOCS/LstV2/ocp/folder.bru
Normal file
8
LogisticsSupportTool_API_DOCS/LstV2/ocp/folder.bru
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
meta {
|
||||||
|
name: ocp
|
||||||
|
seq: 6
|
||||||
|
}
|
||||||
|
|
||||||
|
auth {
|
||||||
|
mode: inherit
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
meta {
|
||||||
|
name: Update Printers
|
||||||
|
type: http
|
||||||
|
seq: 1
|
||||||
|
}
|
||||||
|
|
||||||
|
get {
|
||||||
|
url: {{url}}/lst/old/api/ocp/updateprinters
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
meta {
|
||||||
|
name: printers
|
||||||
|
seq: 1
|
||||||
|
}
|
||||||
|
|
||||||
|
auth {
|
||||||
|
mode: inherit
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
meta {
|
||||||
|
name: Change user password
|
||||||
|
type: http
|
||||||
|
seq: 5
|
||||||
|
}
|
||||||
|
|
||||||
|
patch {
|
||||||
|
url: {{url}}/lst/api/admin/users/changePassword/:userId
|
||||||
|
body: json
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
params:path {
|
||||||
|
userId: 0hlO48C7Jw1J804FxrCnonKjQ2zh48R6
|
||||||
|
}
|
||||||
|
|
||||||
|
body:json {
|
||||||
|
{
|
||||||
|
"password":"nova0511"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
24
LogisticsSupportTool_API_DOCS/app/admin/User/Create user.bru
Normal file
24
LogisticsSupportTool_API_DOCS/app/admin/User/Create user.bru
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
meta {
|
||||||
|
name: Create user
|
||||||
|
type: http
|
||||||
|
seq: 4
|
||||||
|
}
|
||||||
|
|
||||||
|
post {
|
||||||
|
url: {{url}}/lst/api/admin/users/new
|
||||||
|
body: json
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
body:json {
|
||||||
|
{
|
||||||
|
"username":"hardin001",
|
||||||
|
"email":"ryan.hardin@alpla.com",
|
||||||
|
"password":"Alpla2025!"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
26
LogisticsSupportTool_API_DOCS/app/admin/User/Delete User.bru
Normal file
26
LogisticsSupportTool_API_DOCS/app/admin/User/Delete User.bru
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
meta {
|
||||||
|
name: Delete User
|
||||||
|
type: http
|
||||||
|
seq: 6
|
||||||
|
}
|
||||||
|
|
||||||
|
delete {
|
||||||
|
url: {{url}}/lst/api/admin/users/delete/:userId
|
||||||
|
body: json
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
params:path {
|
||||||
|
userId: 0hlO48C7Jw1J804FxrCnonKjQ2zh48R6
|
||||||
|
}
|
||||||
|
|
||||||
|
body:json {
|
||||||
|
{
|
||||||
|
"password":"nova0511"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
@@ -21,4 +21,5 @@ body:json {
|
|||||||
|
|
||||||
settings {
|
settings {
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
}
|
}
|
||||||
|
|||||||
23
LogisticsSupportTool_API_DOCS/app/admin/User/Get roles.bru
Normal file
23
LogisticsSupportTool_API_DOCS/app/admin/User/Get roles.bru
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
meta {
|
||||||
|
name: Get roles
|
||||||
|
type: http
|
||||||
|
seq: 7
|
||||||
|
}
|
||||||
|
|
||||||
|
get {
|
||||||
|
url: {{url}}/lst/api/user/roles
|
||||||
|
body: json
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
body:json {
|
||||||
|
{
|
||||||
|
"module":"siloAdjustments",
|
||||||
|
"role":"viewer"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
@@ -4,23 +4,24 @@ meta {
|
|||||||
seq: 7
|
seq: 7
|
||||||
}
|
}
|
||||||
|
|
||||||
post {
|
patch {
|
||||||
url: {{url}}/lst/api/admin/:userID/grant
|
url: {{url}}/lst/api/admin/users/:userID/grant
|
||||||
body: json
|
body: json
|
||||||
auth: inherit
|
auth: inherit
|
||||||
}
|
}
|
||||||
|
|
||||||
params:path {
|
params:path {
|
||||||
userID: 0hlO48C7Jw1J804FxrCnonK
|
userID: 0hlO48C7Jw1J804FxrCnonKjQ2zh48R6
|
||||||
}
|
}
|
||||||
|
|
||||||
body:json {
|
body:json {
|
||||||
{
|
{
|
||||||
"module":"users",
|
"module":"siloAdjustments",
|
||||||
"role":"admin"
|
"role":"viewer"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
settings {
|
settings {
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
meta {
|
||||||
|
name: RevokeRole by ID
|
||||||
|
type: http
|
||||||
|
seq: 3
|
||||||
|
}
|
||||||
|
|
||||||
|
patch {
|
||||||
|
url: {{url}}/lst/api/admin/users/:userID/revoke
|
||||||
|
body: json
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
params:path {
|
||||||
|
userID: 0hlO48C7Jw1J804FxrCnonKjQ2zh48R6
|
||||||
|
}
|
||||||
|
|
||||||
|
body:json {
|
||||||
|
{
|
||||||
|
"module":"ocp"
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
@@ -16,16 +16,17 @@ headers {
|
|||||||
|
|
||||||
body:json {
|
body:json {
|
||||||
{
|
{
|
||||||
"name": "Bowling Green 2",
|
"name": "St Peters",
|
||||||
"serverDNS": "USBOW2VMS006",
|
"serverDNS": "USSTP1VMS006",
|
||||||
"plantToken": "usbow2",
|
"plantToken": "usstp1",
|
||||||
"ipAddress": "10.30.0.26",
|
"ipAddress": "10.37.0.26",
|
||||||
"greatPlainsPlantCode": 0,
|
"greatPlainsPlantCode": 45,
|
||||||
"lstServerPort": 4000,
|
"lstServerPort": 4000,
|
||||||
"serverLoc": "E$\\LST"
|
"serverLoc": "E:\\LST"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
settings {
|
settings {
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,17 +6,11 @@ meta {
|
|||||||
|
|
||||||
get {
|
get {
|
||||||
url: {{url}}/lst/api/user/roles
|
url: {{url}}/lst/api/user/roles
|
||||||
body: json
|
body: none
|
||||||
auth: inherit
|
auth: inherit
|
||||||
}
|
}
|
||||||
|
|
||||||
body:json {
|
|
||||||
{
|
|
||||||
"module":"users",
|
|
||||||
"role":"admin"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
settings {
|
settings {
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
}
|
}
|
||||||
|
|||||||
35
LogisticsSupportTool_API_DOCS/app/auth/Login.bru
Normal file
35
LogisticsSupportTool_API_DOCS/app/auth/Login.bru
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
meta {
|
||||||
|
name: Login
|
||||||
|
type: http
|
||||||
|
seq: 10
|
||||||
|
}
|
||||||
|
|
||||||
|
post {
|
||||||
|
url: {{url}}/lst/api/user/login
|
||||||
|
body: json
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
body:json {
|
||||||
|
{
|
||||||
|
"username": "matthes01",
|
||||||
|
"password": "nova0511"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
script:post-response {
|
||||||
|
// grab the raw Set-Cookie header
|
||||||
|
const cookies = res.headers["set-cookie"];
|
||||||
|
|
||||||
|
const sessionCookie = cookies[0].split(";")[0];
|
||||||
|
|
||||||
|
// Save it as an environment variable
|
||||||
|
bru.setEnvVar("session_cookie", sessionCookie);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
@@ -21,4 +21,5 @@ body:json {
|
|||||||
|
|
||||||
settings {
|
settings {
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,4 +32,5 @@ script:post-response {
|
|||||||
|
|
||||||
settings {
|
settings {
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,4 +32,5 @@ script:post-response {
|
|||||||
|
|
||||||
settings {
|
settings {
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ meta {
|
|||||||
}
|
}
|
||||||
|
|
||||||
post {
|
post {
|
||||||
url: {{url}}/lst/api/auth/session
|
url: {{url}}/lst/api/auth/sign-out
|
||||||
body: none
|
body: none
|
||||||
auth: inherit
|
auth: inherit
|
||||||
}
|
}
|
||||||
@@ -25,4 +25,5 @@ script:post-response {
|
|||||||
|
|
||||||
settings {
|
settings {
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
meta {
|
meta {
|
||||||
name: app
|
name: app
|
||||||
seq: 2
|
seq: 3
|
||||||
}
|
}
|
||||||
|
|
||||||
auth {
|
auth {
|
||||||
|
|||||||
@@ -0,0 +1,22 @@
|
|||||||
|
meta {
|
||||||
|
name: Get Invoices
|
||||||
|
type: http
|
||||||
|
seq: 4
|
||||||
|
}
|
||||||
|
|
||||||
|
get {
|
||||||
|
url: {{url}}/lst/api/forklifts/invoices
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
body:json {
|
||||||
|
{
|
||||||
|
"name":"Delage DLL"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
meta {
|
||||||
|
name: Update lease
|
||||||
|
type: http
|
||||||
|
seq: 3
|
||||||
|
}
|
||||||
|
|
||||||
|
patch {
|
||||||
|
url: {{url}}/lst/api/forklifts/invoices/:id
|
||||||
|
body: json
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
params:path {
|
||||||
|
id: de10c8ee-5756-4efb-9664-3c55338b2b60
|
||||||
|
}
|
||||||
|
|
||||||
|
body:json {
|
||||||
|
{
|
||||||
|
|
||||||
|
"companyId": "b34c6684-ec35-4364-acef-0c1570faf123"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
meta {
|
||||||
|
name: add lease
|
||||||
|
type: http
|
||||||
|
seq: 1
|
||||||
|
}
|
||||||
|
|
||||||
|
post {
|
||||||
|
url: {{url}}/lst/api/forklifts/invoices
|
||||||
|
body: json
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
body:json {
|
||||||
|
{
|
||||||
|
"leaseId": "0147d082-aee0-4594-b0f4-c6f4ee777e92",
|
||||||
|
"invoiceNumber": "592596987",
|
||||||
|
"invoiceDate": "10/12/2025",
|
||||||
|
"uploadedBy": "matthes01",
|
||||||
|
"totalAmount": "1820.88",
|
||||||
|
"forklifts": [
|
||||||
|
{ "forklift_Id": "ec2f3759-1580-4c1b-8fbf-8a4b0b506758", "amount": 909.91 }
|
||||||
|
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
meta {
|
||||||
|
name: Invoices
|
||||||
|
seq: 4
|
||||||
|
}
|
||||||
|
|
||||||
|
auth {
|
||||||
|
mode: inherit
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
meta {
|
||||||
|
name: Get Companies
|
||||||
|
type: http
|
||||||
|
seq: 2
|
||||||
|
}
|
||||||
|
|
||||||
|
get {
|
||||||
|
url: {{url}}/lst/api/forklifts/companies
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
body:json {
|
||||||
|
{
|
||||||
|
"name":"Delage DLL"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
meta {
|
||||||
|
name: Update Company
|
||||||
|
type: http
|
||||||
|
seq: 3
|
||||||
|
}
|
||||||
|
|
||||||
|
patch {
|
||||||
|
url: {{url}}/lst/api/forklifts/companies/:id
|
||||||
|
body: json
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
params:path {
|
||||||
|
id: fbfba3df-8c0f-4994-adae-c03808cbccdc
|
||||||
|
}
|
||||||
|
|
||||||
|
body:json {
|
||||||
|
{
|
||||||
|
"name":"Delage DLL",
|
||||||
|
"active": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
meta {
|
||||||
|
name: add company
|
||||||
|
type: http
|
||||||
|
seq: 1
|
||||||
|
}
|
||||||
|
|
||||||
|
post {
|
||||||
|
url: {{url}}/lst/api/forklifts/companies
|
||||||
|
body: json
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
body:json {
|
||||||
|
{
|
||||||
|
"name":"Delage DLL"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
meta {
|
||||||
|
name: companies
|
||||||
|
seq: 2
|
||||||
|
}
|
||||||
|
|
||||||
|
auth {
|
||||||
|
mode: inherit
|
||||||
|
}
|
||||||
8
LogisticsSupportTool_API_DOCS/app/forklifts/folder.bru
Normal file
8
LogisticsSupportTool_API_DOCS/app/forklifts/folder.bru
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
meta {
|
||||||
|
name: forklifts
|
||||||
|
seq: 4
|
||||||
|
}
|
||||||
|
|
||||||
|
auth {
|
||||||
|
mode: inherit
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
meta {
|
||||||
|
name: Get forklift
|
||||||
|
type: http
|
||||||
|
seq: 2
|
||||||
|
}
|
||||||
|
|
||||||
|
get {
|
||||||
|
url: {{url}}/lst/api/forklifts
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
body:json {
|
||||||
|
{
|
||||||
|
"name":"Delage DLL"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
meta {
|
||||||
|
name: Update forklfit
|
||||||
|
type: http
|
||||||
|
seq: 3
|
||||||
|
}
|
||||||
|
|
||||||
|
patch {
|
||||||
|
url: {{url}}/lst/api/forklifts/:id
|
||||||
|
body: json
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
params:path {
|
||||||
|
id: ec2f3759-1580-4c1b-8fbf-8a4b0b506758
|
||||||
|
}
|
||||||
|
|
||||||
|
body:json {
|
||||||
|
{
|
||||||
|
|
||||||
|
"glCode": 31
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
meta {
|
||||||
|
name: add forklift
|
||||||
|
type: http
|
||||||
|
seq: 1
|
||||||
|
}
|
||||||
|
|
||||||
|
post {
|
||||||
|
url: {{url}}/lst/api/forklifts
|
||||||
|
body: json
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
body:json {
|
||||||
|
{
|
||||||
|
"serialNumber":"FN682004",
|
||||||
|
"model": "EFG220",
|
||||||
|
"plant": "Iowa City ISBM",
|
||||||
|
"glCode": 31,
|
||||||
|
"profitCenter": 30,
|
||||||
|
"manufacturer":"Jungheinrich",
|
||||||
|
"manufacturerYear":"2022",
|
||||||
|
"engine":"electric",
|
||||||
|
"batteryType":"lead acid",
|
||||||
|
"leaseId":"0147d082-aee0-4594-b0f4-c6f4ee777e92"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
meta {
|
||||||
|
name: forklifts
|
||||||
|
seq: 3
|
||||||
|
}
|
||||||
|
|
||||||
|
auth {
|
||||||
|
mode: inherit
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
meta {
|
||||||
|
name: Get lease
|
||||||
|
type: http
|
||||||
|
seq: 2
|
||||||
|
}
|
||||||
|
|
||||||
|
get {
|
||||||
|
url: {{url}}/lst/api/forklifts/leases?companyId=b34c6684-ec35-4364-acef-0c1570faf123
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
params:query {
|
||||||
|
companyId: b34c6684-ec35-4364-acef-0c1570faf123
|
||||||
|
}
|
||||||
|
|
||||||
|
body:json {
|
||||||
|
{
|
||||||
|
"name":"Delage DLL"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
meta {
|
||||||
|
name: Update lease
|
||||||
|
type: http
|
||||||
|
seq: 3
|
||||||
|
}
|
||||||
|
|
||||||
|
patch {
|
||||||
|
url: {{url}}/lst/api/forklifts/leases/:id
|
||||||
|
body: json
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
params:path {
|
||||||
|
id: de10c8ee-5756-4efb-9664-3c55338b2b60
|
||||||
|
}
|
||||||
|
|
||||||
|
body:json {
|
||||||
|
{
|
||||||
|
|
||||||
|
"companyId": "b34c6684-ec35-4364-acef-0c1570faf123"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
meta {
|
||||||
|
name: add lease
|
||||||
|
type: http
|
||||||
|
seq: 1
|
||||||
|
}
|
||||||
|
|
||||||
|
post {
|
||||||
|
url: {{url}}/lst/api/forklifts/leases
|
||||||
|
body: json
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
body:json {
|
||||||
|
{
|
||||||
|
"leaseNumber":"40829107-1",
|
||||||
|
"startDate": "11/08/2023",
|
||||||
|
"endDate": "11/12/2025",
|
||||||
|
"companyId": "59c4eaa3-55db-4348-a033-f2fcd91a91d1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
meta {
|
||||||
|
name: lease
|
||||||
|
seq: 1
|
||||||
|
}
|
||||||
|
|
||||||
|
auth {
|
||||||
|
mode: inherit
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
meta {
|
||||||
|
name: Consume
|
||||||
|
type: http
|
||||||
|
seq: 1
|
||||||
|
}
|
||||||
|
|
||||||
|
post {
|
||||||
|
url: {{url}}/lst/old/api/logistics/consume
|
||||||
|
body: json
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
body:json {
|
||||||
|
{
|
||||||
|
"lotNum":283559,
|
||||||
|
"runningNr":19302907
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
meta {
|
||||||
|
name: Consume
|
||||||
|
seq: 5
|
||||||
|
}
|
||||||
|
|
||||||
|
auth {
|
||||||
|
mode: inherit
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
meta {
|
||||||
|
name: RFID Trigger
|
||||||
|
type: http
|
||||||
|
seq: 1
|
||||||
|
}
|
||||||
|
|
||||||
|
post {
|
||||||
|
url: {{url}}/lst/old/api/rfid/manualtrigger/wrapper1
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
meta {
|
||||||
|
name: RFID
|
||||||
|
seq: 3
|
||||||
|
}
|
||||||
|
|
||||||
|
auth {
|
||||||
|
mode: inherit
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
meta {
|
||||||
|
name: demandmgt
|
||||||
|
seq: 4
|
||||||
|
}
|
||||||
|
|
||||||
|
auth {
|
||||||
|
mode: inherit
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
meta {
|
||||||
|
name: get forecast data
|
||||||
|
type: http
|
||||||
|
seq: 1
|
||||||
|
}
|
||||||
|
|
||||||
|
get {
|
||||||
|
url: {{url}}/lst/api/logistics/dm/forecastData
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
8
LogisticsSupportTool_API_DOCS/app/logistics/folder.bru
Normal file
8
LogisticsSupportTool_API_DOCS/app/logistics/folder.bru
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
meta {
|
||||||
|
name: logistics
|
||||||
|
seq: 4
|
||||||
|
}
|
||||||
|
|
||||||
|
auth {
|
||||||
|
mode: inherit
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
meta {
|
||||||
|
name: Preprint
|
||||||
|
type: http
|
||||||
|
seq: 1
|
||||||
|
}
|
||||||
|
|
||||||
|
post {
|
||||||
|
url: {{url}}/lst/api/logistics/labeling/preprint
|
||||||
|
body: json
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
body:json {
|
||||||
|
{
|
||||||
|
"scannerId": 999,
|
||||||
|
"lotNr": 26656,
|
||||||
|
"machineId": 5, // 457=22, 458=23
|
||||||
|
"printerId": 7, // 457=22, 458=23
|
||||||
|
"layoutId": 22,
|
||||||
|
"numberOfCopies": 1,
|
||||||
|
"qtyToPrint":0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
meta {
|
||||||
|
name: SSCC
|
||||||
|
type: http
|
||||||
|
seq: 2
|
||||||
|
}
|
||||||
|
|
||||||
|
get {
|
||||||
|
url: {{url}}/lst/api/logistics/getsscc
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
meta {
|
||||||
|
name: labeling
|
||||||
|
seq: 1
|
||||||
|
}
|
||||||
|
|
||||||
|
auth {
|
||||||
|
mode: inherit
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
meta {
|
||||||
|
name: ForecastData
|
||||||
|
type: http
|
||||||
|
seq: 1
|
||||||
|
}
|
||||||
|
|
||||||
|
post {
|
||||||
|
url: {{url}}/lst/api/logistics/dm/forecastData
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
meta {
|
||||||
|
name: warehouse
|
||||||
|
seq: 2
|
||||||
|
}
|
||||||
|
|
||||||
|
auth {
|
||||||
|
mode: inherit
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
meta {
|
||||||
|
name: All Server Stats
|
||||||
|
type: http
|
||||||
|
seq: 3
|
||||||
|
}
|
||||||
|
|
||||||
|
get {
|
||||||
|
url: {{url}}/lst/api/system/allservers/stats
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
16
LogisticsSupportTool_API_DOCS/app/system/Settings.bru
Normal file
16
LogisticsSupportTool_API_DOCS/app/system/Settings.bru
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
meta {
|
||||||
|
name: Settings
|
||||||
|
type: http
|
||||||
|
seq: 2
|
||||||
|
}
|
||||||
|
|
||||||
|
get {
|
||||||
|
url: {{url}}/lst/api/system/settings
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
20
LogisticsSupportTool_API_DOCS/app/system/Update Setting.bru
Normal file
20
LogisticsSupportTool_API_DOCS/app/system/Update Setting.bru
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
meta {
|
||||||
|
name: Update Setting
|
||||||
|
type: http
|
||||||
|
seq: 4
|
||||||
|
}
|
||||||
|
|
||||||
|
post {
|
||||||
|
url: {{url}}/lst/api/system/settings/:token
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
params:path {
|
||||||
|
token: test3
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
meta {
|
||||||
|
name: GetModules
|
||||||
|
type: http
|
||||||
|
seq: 3
|
||||||
|
}
|
||||||
|
|
||||||
|
get {
|
||||||
|
url: {{url}}/lst/api/system/modules
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
meta {
|
||||||
|
name: Update Modules
|
||||||
|
type: http
|
||||||
|
seq: 2
|
||||||
|
}
|
||||||
|
|
||||||
|
patch {
|
||||||
|
url: {{url}}/lst/api/system/modules/update/:module
|
||||||
|
body: json
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
params:path {
|
||||||
|
module: materialHelper
|
||||||
|
}
|
||||||
|
|
||||||
|
body:json {
|
||||||
|
{
|
||||||
|
"active": true,
|
||||||
|
"updateAll": true
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
meta {
|
||||||
|
name: modules
|
||||||
|
seq: 3
|
||||||
|
}
|
||||||
|
|
||||||
|
auth {
|
||||||
|
mode: inherit
|
||||||
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"version": "1",
|
"version": "1",
|
||||||
"name": "LogisticsSupportTool_API_DOCS",
|
"name": "lstv2",
|
||||||
"type": "collection",
|
"type": "collection",
|
||||||
"ignore": [
|
"ignore": [
|
||||||
"node_modules",
|
"node_modules",
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
vars {
|
vars {
|
||||||
url: http://localhost:4200
|
url: http://localhost:5500
|
||||||
session_cookie:
|
session_cookie:
|
||||||
urlv2: http://usiow1vms006:3001
|
urlv2: http://usbow1vms006:3000
|
||||||
jwtV2:
|
jwtV2:
|
||||||
|
userID:
|
||||||
}
|
}
|
||||||
vars:secret [
|
vars:secret [
|
||||||
v2Password
|
v2Password
|
||||||
|
|||||||
24
LogisticsSupportTool_API_DOCS/logistics/bookout.bru
Normal file
24
LogisticsSupportTool_API_DOCS/logistics/bookout.bru
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
meta {
|
||||||
|
name: bookout
|
||||||
|
type: http
|
||||||
|
seq: 2
|
||||||
|
}
|
||||||
|
|
||||||
|
post {
|
||||||
|
url: {{url}}/lst/old/api/logistics/bookout
|
||||||
|
body: json
|
||||||
|
auth: none
|
||||||
|
}
|
||||||
|
|
||||||
|
body:json {
|
||||||
|
{
|
||||||
|
|
||||||
|
"runningNr": "1865027",
|
||||||
|
"reason": "packer printed premature"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
8
LogisticsSupportTool_API_DOCS/logistics/folder.bru
Normal file
8
LogisticsSupportTool_API_DOCS/logistics/folder.bru
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
meta {
|
||||||
|
name: logistics
|
||||||
|
seq: 7
|
||||||
|
}
|
||||||
|
|
||||||
|
auth {
|
||||||
|
mode: inherit
|
||||||
|
}
|
||||||
24
LogisticsSupportTool_API_DOCS/logistics/relocate.bru
Normal file
24
LogisticsSupportTool_API_DOCS/logistics/relocate.bru
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
meta {
|
||||||
|
name: relocate
|
||||||
|
type: http
|
||||||
|
seq: 1
|
||||||
|
}
|
||||||
|
|
||||||
|
post {
|
||||||
|
url: {{url}}/lst/old/api/logistics/relocate
|
||||||
|
body: json
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
body:json {
|
||||||
|
{
|
||||||
|
|
||||||
|
"runningNr": "56121541",
|
||||||
|
"laneID": "30006"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
24
LogisticsSupportTool_API_DOCS/logistics/removeAsWaste.bru
Normal file
24
LogisticsSupportTool_API_DOCS/logistics/removeAsWaste.bru
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
meta {
|
||||||
|
name: removeAsWaste
|
||||||
|
type: http
|
||||||
|
seq: 3
|
||||||
|
}
|
||||||
|
|
||||||
|
post {
|
||||||
|
url: {{url}}/lst/old/api/logistics/removeasreusable
|
||||||
|
body: json
|
||||||
|
auth: none
|
||||||
|
}
|
||||||
|
|
||||||
|
body:json {
|
||||||
|
{
|
||||||
|
|
||||||
|
"runningNr": "1865018",
|
||||||
|
"reason": "validating stockout"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
8
LogisticsSupportTool_API_DOCS/mobile/folder.bru
Normal file
8
LogisticsSupportTool_API_DOCS/mobile/folder.bru
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
meta {
|
||||||
|
name: mobile
|
||||||
|
seq: 4
|
||||||
|
}
|
||||||
|
|
||||||
|
auth {
|
||||||
|
mode: inherit
|
||||||
|
}
|
||||||
20
LogisticsSupportTool_API_DOCS/mobile/getsession.bru
Normal file
20
LogisticsSupportTool_API_DOCS/mobile/getsession.bru
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
meta {
|
||||||
|
name: getsession
|
||||||
|
type: http
|
||||||
|
seq: 1
|
||||||
|
}
|
||||||
|
|
||||||
|
get {
|
||||||
|
url: {{url}}/lst/api/user/me
|
||||||
|
body: none
|
||||||
|
auth: bearer
|
||||||
|
}
|
||||||
|
|
||||||
|
auth:bearer {
|
||||||
|
token: jpHHbLNGJRpUMvfrVOYmhbJL2Ux0arse
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
15
LogisticsSupportTool_API_DOCS/mobile/ota system check.bru
Normal file
15
LogisticsSupportTool_API_DOCS/mobile/ota system check.bru
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
meta {
|
||||||
|
name: ota system check
|
||||||
|
type: http
|
||||||
|
seq: 2
|
||||||
|
}
|
||||||
|
|
||||||
|
get {
|
||||||
|
url: {{url}}/lst/api/mobile
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
}
|
||||||
20
LogisticsSupportTool_API_DOCS/mobile/otacheck.bru
Normal file
20
LogisticsSupportTool_API_DOCS/mobile/otacheck.bru
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
meta {
|
||||||
|
name: otacheck
|
||||||
|
type: http
|
||||||
|
seq: 3
|
||||||
|
}
|
||||||
|
|
||||||
|
get {
|
||||||
|
url: http://10.193.0.56:4000/api/mobile/updates
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
headers {
|
||||||
|
expo-runtime-version: 1.0.0
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
8
LogisticsSupportTool_API_DOCS/v3endpoints/folder.bru
Normal file
8
LogisticsSupportTool_API_DOCS/v3endpoints/folder.bru
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
meta {
|
||||||
|
name: v3endpoints
|
||||||
|
seq: 5
|
||||||
|
}
|
||||||
|
|
||||||
|
auth {
|
||||||
|
mode: inherit
|
||||||
|
}
|
||||||
16
LogisticsSupportTool_API_DOCS/v3endpoints/tester.bru
Normal file
16
LogisticsSupportTool_API_DOCS/v3endpoints/tester.bru
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
meta {
|
||||||
|
name: tester
|
||||||
|
type: http
|
||||||
|
seq: 1
|
||||||
|
}
|
||||||
|
|
||||||
|
post {
|
||||||
|
url: http://localhost:3000/lst/api/system/prodsql/start
|
||||||
|
body: none
|
||||||
|
auth: inherit
|
||||||
|
}
|
||||||
|
|
||||||
|
settings {
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
}
|
||||||
420
app/main.ts
420
app/main.ts
@@ -1,200 +1,306 @@
|
|||||||
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
|
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
|
||||||
|
|
||||||
|
import { toNodeHandler } from "better-auth/node";
|
||||||
|
import cors from "cors";
|
||||||
import express from "express";
|
import express from "express";
|
||||||
import morgan from "morgan";
|
|
||||||
import { createServer } from "http";
|
import { createServer } from "http";
|
||||||
import { setupRoutes } from "./src/internal/routerHandler/routeHandler.js";
|
import { createProxyMiddleware } from "http-proxy-middleware";
|
||||||
import { printers } from "./src/internal/ocp/printers/printers.js";
|
import morgan from "morgan";
|
||||||
|
import os from "os";
|
||||||
import { dirname, join } from "path";
|
import { dirname, join } from "path";
|
||||||
|
import swaggerJsdoc from "swagger-jsdoc";
|
||||||
|
import swaggerUi from "swagger-ui-express";
|
||||||
import { fileURLToPath } from "url";
|
import { fileURLToPath } from "url";
|
||||||
|
import { schedulerManager } from "./src/internal/logistics/controller/schedulerManager.js";
|
||||||
|
import { setupMobileRoutes } from "./src/internal/mobile/route.js";
|
||||||
|
import { printers } from "./src/internal/ocp/printers/printers.js";
|
||||||
|
import { setupRoutes } from "./src/internal/routerHandler/routeHandler.js";
|
||||||
|
import { baseModules } from "./src/internal/system/controller/modules/baseModules.js";
|
||||||
|
import { baseSettings } from "./src/internal/system/controller/settings/baseSettings.js";
|
||||||
|
import {
|
||||||
|
addListeners,
|
||||||
|
manualFixes,
|
||||||
|
} from "./src/internal/system/utlis/addListeners.js";
|
||||||
|
import { auth } from "./src/pkg/auth/auth.js";
|
||||||
import { db } from "./src/pkg/db/db.js";
|
import { db } from "./src/pkg/db/db.js";
|
||||||
import { settings } from "./src/pkg/db/schema/settings.js";
|
import { settings } from "./src/pkg/db/schema/settings.js";
|
||||||
import { validateEnv } from "./src/pkg/utils/envValidator.js";
|
|
||||||
import { createLogger } from "./src/pkg/logger/logger.js";
|
import { createLogger } from "./src/pkg/logger/logger.js";
|
||||||
import { returnFunc } from "./src/pkg/utils/return.js";
|
import { v1Listener } from "./src/pkg/logger/v1Listener.js";
|
||||||
import { initializeProdPool } from "./src/pkg/prodSql/prodSqlConnect.js";
|
|
||||||
import { tryCatch } from "./src/pkg/utils/tryCatch.js";
|
|
||||||
import os from "os";
|
|
||||||
import cors from "cors";
|
|
||||||
import { sendNotify } from "./src/pkg/utils/notify.js";
|
|
||||||
import { toNodeHandler } from "better-auth/node";
|
|
||||||
import { auth } from "./src/pkg/auth/auth.js";
|
|
||||||
import { apiHitMiddleware } from "./src/pkg/middleware/apiHits.js";
|
import { apiHitMiddleware } from "./src/pkg/middleware/apiHits.js";
|
||||||
|
import { initializeProdPool, pool } from "./src/pkg/prodSql/prodSqlConnect.js";
|
||||||
|
import { validateEnv } from "./src/pkg/utils/envValidator.js";
|
||||||
|
import { sendNotify } from "./src/pkg/utils/notify.js";
|
||||||
|
import { returnFunc } from "./src/pkg/utils/return.js";
|
||||||
|
import { tryCatch } from "./src/pkg/utils/tryCatch.js";
|
||||||
import { setupIoServer } from "./src/ws/server.js";
|
import { setupIoServer } from "./src/ws/server.js";
|
||||||
import { schedulerManager } from "./src/internal/logistics/controller/schedulerManager.js";
|
import { swaggerConfig, swaggerUiOptions } from "./src/internal/swagger/config.js";
|
||||||
|
import { setupSwagger } from "./src/internal/swagger/swagger.js";
|
||||||
|
|
||||||
|
|
||||||
const main = async () => {
|
const main = async () => {
|
||||||
const env = validateEnv(process.env);
|
const env = validateEnv(process.env);
|
||||||
const PORT = Number(env.VITE_PORT) || 4200;
|
const PORT = Number(process.env.VITE_PORT) || 4200;
|
||||||
|
|
||||||
//create the logger
|
//create the logger
|
||||||
const log = createLogger({ module: "system", subModule: "main start" });
|
const log = createLogger({ module: "system", subModule: "main start" });
|
||||||
|
|
||||||
// base path
|
// base path
|
||||||
let basePath: string = "";
|
let basePath: string = "";
|
||||||
|
|
||||||
const __filename = fileURLToPath(import.meta.url);
|
const __filename = fileURLToPath(import.meta.url);
|
||||||
const __dirname = dirname(__filename);
|
const __dirname = dirname(__filename);
|
||||||
|
|
||||||
// Db connection stuff
|
// Db connection stuff
|
||||||
const res = await tryCatch(db.select().from(settings));
|
const res = await tryCatch(db.select().from(settings));
|
||||||
|
|
||||||
if (res.error) {
|
if (res.error) {
|
||||||
return returnFunc({
|
return returnFunc({
|
||||||
success: false,
|
success: false,
|
||||||
module: "system",
|
module: "system",
|
||||||
level: "fatal",
|
level: "fatal",
|
||||||
message: `Database lookup failed`,
|
message: `Database lookup failed`,
|
||||||
notify: false,
|
notify: false,
|
||||||
data: [],
|
data: [],
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (res.data.length === 0) {
|
if (res.data.length === 0) {
|
||||||
//return
|
//return
|
||||||
// returnFunc({
|
// returnFunc({
|
||||||
// success: false,
|
// success: false,
|
||||||
// module: "system",
|
// module: "system",
|
||||||
// level: "fatal",
|
// level: "fatal",
|
||||||
// message: `This seems to be the first time you have started the app please validate the settings have been intiated`,
|
// message: `This seems to be the first time you have started the app please validate the settings have been intiated`,
|
||||||
// notify: false,
|
// notify: false,
|
||||||
// data: [],
|
// data: [],
|
||||||
// });
|
// });
|
||||||
}
|
}
|
||||||
|
|
||||||
// connect to the prod sql
|
// connect to the prod sql
|
||||||
await initializeProdPool();
|
console.log("Connecting to the sql server");
|
||||||
|
|
||||||
// express app
|
|
||||||
const app = express();
|
|
||||||
|
|
||||||
// global env that run only in dev
|
// express app
|
||||||
if (process.env.NODE_ENV?.trim() !== "production") {
|
const app = express();
|
||||||
app.use(morgan("tiny"));
|
|
||||||
basePath = "/lst";
|
|
||||||
|
|
||||||
app.use(
|
// global env that run only in dev
|
||||||
basePath + "/test",
|
if (process.env.NODE_ENV?.trim() !== "production") {
|
||||||
express.static(join(__dirname, "../controller"))
|
app.use(morgan("tiny"));
|
||||||
);
|
basePath = "/lst";
|
||||||
}
|
|
||||||
|
|
||||||
// global middleware
|
app.use(
|
||||||
app.set("trust proxy", true);
|
basePath + "/test",
|
||||||
app.use(apiHitMiddleware);
|
express.static(join(__dirname, "../controller")),
|
||||||
app.all(basePath + "/api/auth/*splat", toNodeHandler(auth)); // sign-in sign-out
|
);
|
||||||
app.use(express.json());
|
}
|
||||||
|
|
||||||
const allowedOrigins = [
|
// old app prox temp stuff
|
||||||
/^https?:\/\/localhost:(5173|5500|4200|3000|4000)$/, // all the allowed backend ports
|
app.use(
|
||||||
/^https?:\/\/.*\.alpla\.net$/,
|
basePath + "/old",
|
||||||
env.BETTER_AUTH_URL, // prod
|
createProxyMiddleware({
|
||||||
];
|
target: `http://localhost:${process.env.V1PORT || "3000"}`, // change this to pull from the correct port
|
||||||
|
changeOrigin: true,
|
||||||
|
pathRewrite: (path, req) => {
|
||||||
|
// Remove the basePath + '/old' prefix from the path dynamically
|
||||||
|
return path.replace(`${basePath}/old`, "");
|
||||||
|
},
|
||||||
|
|
||||||
app.use(
|
headers: {
|
||||||
cors({
|
// forward auth headers if needed
|
||||||
origin: (origin, callback) => {
|
"X-Forwarded-By": "express-proxy",
|
||||||
//console.log("CORS request from origin:", origin);
|
},
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
|
||||||
if (!origin) return callback(null, true); // allow same-site or direct calls
|
// global middleware
|
||||||
|
app.set("trust proxy", true);
|
||||||
|
app.use(apiHitMiddleware);
|
||||||
|
app.all(basePath + "/api/auth/*splat", toNodeHandler(auth)); // sign-in sign-out
|
||||||
|
app.use(express.json());
|
||||||
|
|
||||||
try {
|
const allowedOrigins = [
|
||||||
const hostname = new URL(origin).hostname; // strips protocol/port
|
/^https?:\/\/localhost:(5173|5500|4200|3000|4000)$/, // all the allowed backend ports
|
||||||
//console.log("Parsed hostname:", hostname);
|
/^http?:\/\/localhost:(5173|5500|4200|3000|4000)$/,
|
||||||
|
/^https?:\/\/.*\.alpla\.net$/,
|
||||||
|
"http://localhost:4173",
|
||||||
|
"http://localhost:4200",
|
||||||
|
"http://localhost:3000",
|
||||||
|
"http://localhost:3001",
|
||||||
|
"http://localhost:4000",
|
||||||
|
"http://localhost:4001",
|
||||||
|
"http://localhost:5500",
|
||||||
|
env.BETTER_AUTH_URL, // prod
|
||||||
|
];
|
||||||
|
|
||||||
if (allowedOrigins.includes(origin)) {
|
app.use(
|
||||||
return callback(null, true);
|
cors({
|
||||||
}
|
origin: (origin, callback) => {
|
||||||
|
//console.log("CORS request from origin:", origin);
|
||||||
|
|
||||||
// Now this works for *.alpla.net
|
if (!origin) return callback(null, true); // allow same-site or direct calls
|
||||||
if (
|
|
||||||
hostname.endsWith(".alpla.net") ||
|
|
||||||
hostname === "alpla.net"
|
|
||||||
) {
|
|
||||||
return callback(null, true);
|
|
||||||
}
|
|
||||||
} catch (err) {
|
|
||||||
//console.error("Invalid Origin header:", origin);
|
|
||||||
}
|
|
||||||
|
|
||||||
return callback(new Error("Not allowed by CORS: " + origin));
|
try {
|
||||||
},
|
const hostname = new URL(origin).hostname; // strips protocol/port
|
||||||
methods: ["GET", "POST", "PUT", "DELETE", "PATCH", "OPTIONS"],
|
//console.log("Parsed hostname:", hostname);
|
||||||
credentials: true,
|
|
||||||
})
|
|
||||||
);
|
|
||||||
|
|
||||||
// docs and api stuff
|
if (allowedOrigins.includes(origin)) {
|
||||||
app.use(
|
return callback(null, true);
|
||||||
basePath + "/d",
|
}
|
||||||
express.static(join(__dirname, "../lstDocs/build"))
|
|
||||||
);
|
|
||||||
app.use(
|
|
||||||
basePath + "/app",
|
|
||||||
express.static(join(__dirname, "../frontend/dist"))
|
|
||||||
);
|
|
||||||
|
|
||||||
// server setup
|
// Now this works for *.alpla.net
|
||||||
const server = createServer(app);
|
if (hostname.endsWith(".alpla.net") || hostname === "alpla.net") {
|
||||||
|
return callback(null, true);
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
//console.error("Invalid Origin header:", origin);
|
||||||
|
}
|
||||||
|
|
||||||
// register app
|
return callback(new Error("Not allowed by CORS: " + origin));
|
||||||
setupRoutes(app, basePath);
|
},
|
||||||
|
methods: ["GET", "POST", "PUT", "DELETE", "PATCH", "OPTIONS"],
|
||||||
|
credentials: true,
|
||||||
|
exposedHeaders: [
|
||||||
|
"set-cookie",
|
||||||
|
"expo-protocol-version",
|
||||||
|
"expo-sfv-version",
|
||||||
|
],
|
||||||
|
allowedHeaders: [
|
||||||
|
"Content-Type",
|
||||||
|
"Authorization",
|
||||||
|
"X-Requested-With",
|
||||||
|
"XMLHttpRequest",
|
||||||
|
"expo-runtime-version",
|
||||||
|
"expo-platform",
|
||||||
|
"expo-channel-name",
|
||||||
|
"*",
|
||||||
|
],
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
|
||||||
// ws stuff
|
// docs and routes
|
||||||
setupIoServer(server, basePath);
|
// const openapiSpec: any = swaggerJsdoc(swaggerConfig);
|
||||||
|
// app.use(
|
||||||
|
// basePath + "/api/docs",
|
||||||
|
// swaggerUi.serve,
|
||||||
|
// swaggerUi.setup(openapiSpec, swaggerUiOptions),
|
||||||
|
// );
|
||||||
|
initializeProdPool();
|
||||||
|
setupSwagger(app, basePath)
|
||||||
|
app.use(basePath + "/d", express.static(join(__dirname, "../lstDocs/build")));
|
||||||
|
app.use(
|
||||||
|
basePath + "/app",
|
||||||
|
express.static(join(__dirname, "../frontend/dist")),
|
||||||
|
);
|
||||||
|
|
||||||
// sub systems
|
app.get(basePath + "/app/*splat", (req, res) => {
|
||||||
printers();
|
res.sendFile(join(__dirname, "../frontend/dist/index.html"));
|
||||||
schedulerManager();
|
});
|
||||||
|
|
||||||
// start the server up
|
app.get(basePath + "/d/*splat", (req, res) => {
|
||||||
server.listen(PORT, "0.0.0.0", () =>
|
res.sendFile(join(__dirname, "../lstDocs/build/index.html"));
|
||||||
log.info(
|
});
|
||||||
{ stack: { name: "test" } },
|
|
||||||
`Server running in ${
|
|
||||||
process.env.NODE_ENV ? process.env.NODE_ENV : "dev"
|
|
||||||
}, on http://0.0.0.0:${PORT}${basePath}`
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
process.on("uncaughtException", async (err) => {
|
// server setup
|
||||||
//console.log("Uncaught Exception:", err);
|
const server = createServer(app);
|
||||||
// await closePool();
|
|
||||||
// const emailData = {
|
|
||||||
// email: "blake.matthes@alpla.com", // should be moved to the db so it can be reused.
|
|
||||||
// subject: `${os.hostname()} has just encountered a crash.`,
|
|
||||||
// template: "serverCrash",
|
|
||||||
// context: {
|
|
||||||
// error: err,
|
|
||||||
// plant: `${os.hostname()}`,
|
|
||||||
// },
|
|
||||||
// };
|
|
||||||
|
|
||||||
if (!process.env.WEBHOOK_URL) {
|
// register app
|
||||||
// await sendEmail(emailData);
|
setupRoutes(app, basePath);
|
||||||
} else {
|
|
||||||
log.fatal({ stack: err.stack }, err.message);
|
|
||||||
await sendNotify({
|
|
||||||
module: "system",
|
|
||||||
subModule: "fatalCrash",
|
|
||||||
hostname: os.hostname(),
|
|
||||||
message: err.message,
|
|
||||||
stack: err?.stack,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
//process.exit(1);
|
// ws stuff
|
||||||
});
|
setupIoServer(server, basePath);
|
||||||
|
|
||||||
// setInterval(() => {
|
// start all systems after we are intiallally up and running
|
||||||
// const used = process.memoryUsage();
|
setTimeout(() => {
|
||||||
// console.log(
|
baseSettings();
|
||||||
// `Heap: ${(used.heapUsed / 1024 / 1024).toFixed(2)} MB / RSS: ${(
|
baseModules();
|
||||||
// used.rss /
|
printers();
|
||||||
// 1024 /
|
schedulerManager();
|
||||||
// 1024
|
|
||||||
// ).toFixed(2)} MB`
|
// start up the v1listener
|
||||||
// );
|
v1Listener();
|
||||||
// }, 10000);
|
addListeners();
|
||||||
|
//userMigrate();
|
||||||
|
// some temp fixes
|
||||||
|
// above 235 remove these
|
||||||
|
manualFixes();
|
||||||
|
//settingsMigrate();
|
||||||
|
}, 5 * 1000);
|
||||||
|
|
||||||
|
// setTimeout(() => {
|
||||||
|
// startHonoServer();
|
||||||
|
// }, 8 * 1000);
|
||||||
|
|
||||||
|
// start the server up
|
||||||
|
server.listen(PORT, "0.0.0.0", () =>
|
||||||
|
log.info(
|
||||||
|
{ stack: { name: "test" } },
|
||||||
|
`Server running in ${
|
||||||
|
process.env.NODE_ENV ? process.env.NODE_ENV : "dev"
|
||||||
|
}, on http://0.0.0.0:${PORT}${basePath}`,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
process.on("uncaughtException", async (err) => {
|
||||||
|
//console.log("Uncaught Exception:", err);
|
||||||
|
// await closePool();
|
||||||
|
// const emailData = {
|
||||||
|
// email: "blake.matthes@alpla.com", // should be moved to the db so it can be reused.
|
||||||
|
// subject: `${os.hostname()} has just encountered a crash.`,
|
||||||
|
// template: "serverCrash",
|
||||||
|
// context: {
|
||||||
|
// error: err,
|
||||||
|
// plant: `${os.hostname()}`,
|
||||||
|
// },
|
||||||
|
// };
|
||||||
|
|
||||||
|
if (!process.env.WEBHOOK_URL) {
|
||||||
|
// await sendEmail(emailData);
|
||||||
|
} else {
|
||||||
|
log.fatal({ stack: err.stack }, err.message);
|
||||||
|
await sendNotify({
|
||||||
|
module: "system",
|
||||||
|
subModule: "fatalCrash",
|
||||||
|
hostname: os.hostname(),
|
||||||
|
message: err.message,
|
||||||
|
stack: err?.stack,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
//process.exit(1);
|
||||||
|
});
|
||||||
|
|
||||||
|
process.on("SIGINT", async () => {
|
||||||
|
console.log("\nGracefully shutting down...");
|
||||||
|
try {
|
||||||
|
await pool.close();
|
||||||
|
console.log("Closed SQL connection.");
|
||||||
|
} catch (err) {
|
||||||
|
console.error("Error closing SQL connection:", err);
|
||||||
|
} finally {
|
||||||
|
process.exit(0);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Also handle other termination signals (optional)
|
||||||
|
process.on("SIGTERM", async () => {
|
||||||
|
console.log("SIGTERM received. Closing SQL connection...");
|
||||||
|
try {
|
||||||
|
await pool.close();
|
||||||
|
} catch (err) {
|
||||||
|
console.error(err);
|
||||||
|
} finally {
|
||||||
|
process.exit(0);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// setInterval(() => {
|
||||||
|
// const used = process.memoryUsage();
|
||||||
|
// console.log(
|
||||||
|
// `Heap: ${(used.heapUsed / 1024 / 1024).toFixed(2)} MB / RSS: ${(
|
||||||
|
// used.rss / 1024 / 1024
|
||||||
|
// ).toFixed(2)} MB`,
|
||||||
|
// );
|
||||||
|
// }, 10000);
|
||||||
};
|
};
|
||||||
|
|
||||||
main();
|
main();
|
||||||
|
|||||||
22
app/src/internal/admin/controller/servers/matchServers.ts
Normal file
22
app/src/internal/admin/controller/servers/matchServers.ts
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
/**
|
||||||
|
* This is intended for when running as dev so we can always keep the servers in sync with the main server.
|
||||||
|
* in the event the server has a change on it we want to make sure we stay in sync
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { createLogger } from "../../../../pkg/logger/logger.js";
|
||||||
|
|
||||||
|
export const mainServerSync = async () => {
|
||||||
|
const log = createLogger({ module: "admin", subModule: "main server sync" });
|
||||||
|
if (
|
||||||
|
process.env.NODE_ENV?.trim() !== "production" &&
|
||||||
|
process.env.MAIN_SERVER
|
||||||
|
) {
|
||||||
|
log.info(
|
||||||
|
{},
|
||||||
|
"Running in dev and have a main server set we will now pull the servers and look for any changes",
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
log.info({}, "This server is running in production no sync will happen");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -4,72 +4,77 @@ import { createLogger } from "../../../pkg/logger/logger.js";
|
|||||||
import { tryCatch } from "../../../pkg/utils/tryCatch.js";
|
import { tryCatch } from "../../../pkg/utils/tryCatch.js";
|
||||||
|
|
||||||
export const systemAdminRole = async (userId: string) => {
|
export const systemAdminRole = async (userId: string) => {
|
||||||
const log = createLogger({
|
const log = createLogger({
|
||||||
module: "admin",
|
module: "admin",
|
||||||
subModule: "systemAdminSetup",
|
subModule: "systemAdminSetup",
|
||||||
});
|
});
|
||||||
const systemAdminRoles = [
|
const systemAdminRoles = [
|
||||||
{
|
{
|
||||||
userId: userId,
|
userId: userId,
|
||||||
module: "users",
|
module: "users",
|
||||||
role: "systemAdmin",
|
role: "systemAdmin",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
userId: userId,
|
userId: userId,
|
||||||
module: "admin",
|
module: "admin",
|
||||||
role: "systemAdmin",
|
role: "systemAdmin",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
userId: userId,
|
userId: userId,
|
||||||
module: "ocp",
|
module: "ocp",
|
||||||
role: "systemAdmin",
|
role: "systemAdmin",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
userId: userId,
|
userId: userId,
|
||||||
module: "siloAdjustments",
|
module: "siloAdjustments",
|
||||||
role: "systemAdmin",
|
role: "systemAdmin",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
userId: userId,
|
userId: userId,
|
||||||
module: "demandManagement",
|
module: "demandManagement",
|
||||||
role: "systemAdmin",
|
role: "systemAdmin",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
userId: userId,
|
userId: userId,
|
||||||
module: "logistics",
|
module: "logistics",
|
||||||
role: "systemAdmin",
|
role: "systemAdmin",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
userId: userId,
|
userId: userId,
|
||||||
module: "production",
|
module: "production",
|
||||||
role: "systemAdmin",
|
role: "systemAdmin",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
userId: userId,
|
userId: userId,
|
||||||
module: "quality",
|
module: "quality",
|
||||||
role: "systemAdmin",
|
role: "systemAdmin",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
userId: userId,
|
userId: userId,
|
||||||
module: "eom",
|
module: "eom",
|
||||||
role: "systemAdmin",
|
role: "systemAdmin",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
userId: userId,
|
userId: userId,
|
||||||
module: "forklifts",
|
module: "forklifts",
|
||||||
role: "systemAdmin",
|
role: "systemAdmin",
|
||||||
},
|
},
|
||||||
];
|
{
|
||||||
const { data, error } = await tryCatch(
|
userId: userId,
|
||||||
db.insert(userRoles).values(systemAdminRoles).onConflictDoNothing()
|
module: "helperCommands",
|
||||||
);
|
role: "systemAdmin",
|
||||||
|
},
|
||||||
|
];
|
||||||
|
const { data, error } = await tryCatch(
|
||||||
|
db.insert(userRoles).values(systemAdminRoles).onConflictDoNothing(),
|
||||||
|
);
|
||||||
|
|
||||||
if (error) {
|
if (error) {
|
||||||
log.error(
|
log.error(
|
||||||
{ stack: { error: error } },
|
{ stack: { error: error } },
|
||||||
"There was an error creating the system admin roles"
|
"There was an error creating the system admin roles",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
log.info({ data }, "New system admin roles created");
|
log.info({ data }, "New system admin roles created");
|
||||||
};
|
};
|
||||||
|
|||||||
42
app/src/internal/admin/controller/users/newUser.ts
Normal file
42
app/src/internal/admin/controller/users/newUser.ts
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
import type { User } from "better-auth";
|
||||||
|
import { DrizzleQueryError } from "drizzle-orm";
|
||||||
|
import { auth } from "../../../../pkg/auth/auth.js";
|
||||||
|
import { tryCatch } from "../../../../pkg/utils/tryCatch.js";
|
||||||
|
|
||||||
|
export type NewUser = {
|
||||||
|
email: string;
|
||||||
|
password: string;
|
||||||
|
username: string;
|
||||||
|
statusCode: number;
|
||||||
|
message: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const createNewUser = async (userData: NewUser) => {
|
||||||
|
const { data, error } = await tryCatch(
|
||||||
|
auth.api.createUser({
|
||||||
|
body: {
|
||||||
|
email: userData.email, // required
|
||||||
|
password: userData.password, // required
|
||||||
|
name: userData.username, // required
|
||||||
|
role: "user",
|
||||||
|
data: { username: userData.username },
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
|
||||||
|
if (error) {
|
||||||
|
if (error instanceof DrizzleQueryError) {
|
||||||
|
// @ts-ignore
|
||||||
|
if (error?.cause.message.includes("unique constraint")) {
|
||||||
|
return {
|
||||||
|
statusCode: 400,
|
||||||
|
message: `${userData.username} already exists`,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return error;
|
||||||
|
}
|
||||||
|
|
||||||
|
return data;
|
||||||
|
};
|
||||||
@@ -1,25 +1,24 @@
|
|||||||
import type { Express, Request, Response } from "express";
|
import type { Express, Request, Response } from "express";
|
||||||
import { requireAuth } from "../../pkg/middleware/authMiddleware.js";
|
import { requireAuth } from "../../pkg/middleware/authMiddleware.js";
|
||||||
|
import { mainServerSync } from "./controller/servers/matchServers.js";
|
||||||
//admin routes
|
|
||||||
import users from "./routes/getUserRoles.js";
|
|
||||||
import grantRoles from "./routes/grantRole.js";
|
|
||||||
import servers from "./routes/servers/serverRoutes.js";
|
import servers from "./routes/servers/serverRoutes.js";
|
||||||
|
//admin routes
|
||||||
|
import users from "./routes/users/userRoutes.js";
|
||||||
|
|
||||||
export const setupAdminRoutes = (app: Express, basePath: string) => {
|
export const setupAdminRoutes = (app: Express, basePath: string) => {
|
||||||
app.use(
|
app.use(
|
||||||
basePath + "/api/admin/server", // will pass bc system admin but this is just telling us we need this
|
basePath + "/api/admin/server", // will pass bc system admin but this is just telling us we need this
|
||||||
servers
|
servers,
|
||||||
);
|
);
|
||||||
|
|
||||||
app.use(
|
app.use(
|
||||||
basePath + "/api/admin/users",
|
basePath + "/api/admin/users",
|
||||||
requireAuth("user", ["systemAdmin"]), // will pass bc system admin but this is just telling us we need this
|
requireAuth("user", ["systemAdmin", "admin"]), // will pass bc system admin but this is just telling us we need this
|
||||||
users
|
users,
|
||||||
);
|
);
|
||||||
app.use(
|
|
||||||
basePath + "/api/admin",
|
// run the sync only on startup
|
||||||
requireAuth("user", ["systemAdmin", "admin"]), // will pass bc system admin but this is just telling us we need this
|
setTimeout(() => {
|
||||||
grantRoles
|
mainServerSync();
|
||||||
);
|
}, 5 * 1000);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,52 +0,0 @@
|
|||||||
import { Router } from "express";
|
|
||||||
import type { Request, Response } from "express";
|
|
||||||
import { tryCatch } from "../../../pkg/utils/tryCatch.js";
|
|
||||||
import { db } from "../../../pkg/db/db.js";
|
|
||||||
import { user } from "../../../pkg/db/schema/auth-schema.js";
|
|
||||||
import { userRoles } from "../../../pkg/db/schema/user_roles.js";
|
|
||||||
|
|
||||||
const router = Router();
|
|
||||||
|
|
||||||
router.post("/", async (req: Request, res: Response) => {
|
|
||||||
// should get all users
|
|
||||||
const { data: users, error: userError } = await tryCatch(
|
|
||||||
db.select().from(user)
|
|
||||||
);
|
|
||||||
|
|
||||||
if (userError) {
|
|
||||||
return res.status(500).json({
|
|
||||||
success: false,
|
|
||||||
message: "Failed to get users",
|
|
||||||
error: userError,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
// should get all roles
|
|
||||||
|
|
||||||
const { data: userRole, error: userRoleError } = await tryCatch(
|
|
||||||
db.select().from(userRoles)
|
|
||||||
);
|
|
||||||
|
|
||||||
if (userRoleError) {
|
|
||||||
return res.status(500).json({
|
|
||||||
success: false,
|
|
||||||
message: "Failed to get userRoless",
|
|
||||||
error: userRoleError,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// add the roles and return
|
|
||||||
|
|
||||||
const usersWithRoles = users.map((user) => {
|
|
||||||
const roles = userRole
|
|
||||||
.filter((ur) => ur.userId === user.id)
|
|
||||||
.map((ur) => ({ module: ur.module, role: ur.role }));
|
|
||||||
|
|
||||||
return { ...user, roles };
|
|
||||||
});
|
|
||||||
|
|
||||||
return res
|
|
||||||
.status(200)
|
|
||||||
.json({ success: true, message: "User data", data: usersWithRoles });
|
|
||||||
});
|
|
||||||
|
|
||||||
export default router;
|
|
||||||
@@ -1,74 +0,0 @@
|
|||||||
import { Router } from "express";
|
|
||||||
import type { Request, Response } from "express";
|
|
||||||
import { tryCatch } from "../../../pkg/utils/tryCatch.js";
|
|
||||||
import { db } from "../../../pkg/db/db.js";
|
|
||||||
import z from "zod";
|
|
||||||
import { userRoles } from "../../../pkg/db/schema/user_roles.js";
|
|
||||||
import { createLogger } from "../../../pkg/logger/logger.js";
|
|
||||||
|
|
||||||
const roleSchema = z.object({
|
|
||||||
module: z.enum([
|
|
||||||
"users",
|
|
||||||
"system",
|
|
||||||
"ocp",
|
|
||||||
"siloAdjustments",
|
|
||||||
"demandManagement",
|
|
||||||
"logistics",
|
|
||||||
"production",
|
|
||||||
"quality",
|
|
||||||
"eom",
|
|
||||||
"forklifts",
|
|
||||||
]),
|
|
||||||
role: z.enum(["admin", "manager", "supervisor", "test,", "viewer"]),
|
|
||||||
});
|
|
||||||
|
|
||||||
const router = Router();
|
|
||||||
|
|
||||||
router.post("/:userId/grant", async (req: Request, res: Response) => {
|
|
||||||
const log = createLogger({
|
|
||||||
module: "admin",
|
|
||||||
subModule: "grantRoles",
|
|
||||||
});
|
|
||||||
const userId = req.params.userId;
|
|
||||||
console.log(userId);
|
|
||||||
|
|
||||||
try {
|
|
||||||
const validated = roleSchema.parse(req.body);
|
|
||||||
|
|
||||||
const data = await db
|
|
||||||
.insert(userRoles)
|
|
||||||
.values({
|
|
||||||
userId,
|
|
||||||
module: validated.module,
|
|
||||||
role: validated.role,
|
|
||||||
})
|
|
||||||
.onConflictDoUpdate({
|
|
||||||
target: [userRoles.userId, userRoles.module],
|
|
||||||
set: { module: validated.module, role: validated.role },
|
|
||||||
});
|
|
||||||
log.info(
|
|
||||||
{},
|
|
||||||
`Module: ${validated.module}, Role: ${validated.role} as was just granted to userID: ${userId}`
|
|
||||||
);
|
|
||||||
return res.status(200).json({
|
|
||||||
success: true,
|
|
||||||
message: `Module: ${validated.module}, Role: ${validated.role} as was just granted`,
|
|
||||||
data,
|
|
||||||
});
|
|
||||||
} catch (err) {
|
|
||||||
if (err instanceof z.ZodError) {
|
|
||||||
const flattened = z.flattenError(err);
|
|
||||||
return res.status(400).json({
|
|
||||||
error: "Validation failed",
|
|
||||||
details: flattened,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
return res.status(400).json({
|
|
||||||
success: false,
|
|
||||||
message: "Invalid input please try again.",
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
export default router;
|
|
||||||
@@ -1,100 +1,106 @@
|
|||||||
import { Router } from "express";
|
|
||||||
import type { Request, Response } from "express";
|
|
||||||
import {
|
|
||||||
insertServerDataSchema,
|
|
||||||
serverData,
|
|
||||||
} from "../../../../pkg/db/schema/servers.js";
|
|
||||||
import { db } from "../../../../pkg/db/db.js";
|
|
||||||
import { tryCatch } from "../../../../pkg/utils/tryCatch.js";
|
|
||||||
import type { DrizzleError } from "drizzle-orm";
|
|
||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
import { createLogger } from "../../../../pkg/logger/logger.js";
|
import { type DrizzleError, sql } from "drizzle-orm";
|
||||||
|
import type { Request, Response } from "express";
|
||||||
|
import { Router } from "express";
|
||||||
import https from "https";
|
import https from "https";
|
||||||
|
import { db } from "../../../../pkg/db/db.js";
|
||||||
|
import {
|
||||||
|
insertServerDataSchema,
|
||||||
|
serverData,
|
||||||
|
} from "../../../../pkg/db/schema/servers.js";
|
||||||
|
import { createLogger } from "../../../../pkg/logger/logger.js";
|
||||||
|
import { tryCatch } from "../../../../pkg/utils/tryCatch.js";
|
||||||
|
|
||||||
const router = Router();
|
const router = Router();
|
||||||
|
|
||||||
router.post("/", async (req: Request, res: Response) => {
|
router.post("/", async (req: Request, res: Response) => {
|
||||||
// when a new server is posted from localhost or 127.0.0.1 we also want to post it to the test server so we can see it from there
|
// when a new server is posted from localhost or 127.0.0.1 we also want to post it to the test server so we can see it from there
|
||||||
//res.status(200).json({ message: "Server added", ip: req.hostname });
|
//res.status(200).json({ message: "Server added", ip: req.hostname });
|
||||||
const log = createLogger({ module: "admin", subModule: "add server" });
|
const log = createLogger({ module: "admin", subModule: "add server" });
|
||||||
const parsed = insertServerDataSchema.safeParse(req.body);
|
const parsed = insertServerDataSchema.safeParse(req.body);
|
||||||
|
|
||||||
if (!parsed.success) {
|
if (!parsed.success) {
|
||||||
return res.status(400).json({ errors: parsed.error.flatten() });
|
return res.status(400).json({ errors: parsed.error.flatten() });
|
||||||
}
|
}
|
||||||
|
|
||||||
const { data, error } = await tryCatch(
|
const { data, error } = await tryCatch(
|
||||||
db
|
db
|
||||||
.insert(serverData)
|
.insert(serverData)
|
||||||
.values(parsed.data)
|
.values({
|
||||||
//.onConflictDoNothing()
|
...parsed.data,
|
||||||
.returning({
|
add_user: req.user?.username,
|
||||||
name: serverData.name,
|
add_date: sql`NOW()`,
|
||||||
plantToken: serverData.plantToken,
|
upd_user: req.user?.username,
|
||||||
})
|
upd_date: sql`NOW()`,
|
||||||
);
|
})
|
||||||
|
//.onConflictDoNothing()
|
||||||
|
.returning({
|
||||||
|
name: serverData.name,
|
||||||
|
plantToken: serverData.plantToken,
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
|
||||||
if (error) {
|
if (error) {
|
||||||
const err: DrizzleError = error;
|
const err: DrizzleError = error;
|
||||||
return res.status(400).json({
|
return res.status(400).json({
|
||||||
message: `Error adding the server`,
|
message: `Error adding the server`,
|
||||||
error: err.cause,
|
error: err.cause,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (req.hostname === "localhost" && process.env.MAIN_SERVER) {
|
if (req.hostname === "localhost" && process.env.MAIN_SERVER) {
|
||||||
log.info({}, "Running in dev server about to add in a new server");
|
log.info({}, "Running in dev server about to add in a new server");
|
||||||
const axiosInstance = axios.create({
|
const axiosInstance = axios.create({
|
||||||
httpsAgent: new https.Agent({ rejectUnauthorized: false }),
|
httpsAgent: new https.Agent({ rejectUnauthorized: false }),
|
||||||
baseURL: process.env.MAIN_SERVER, // e.g. "https://example.com"
|
baseURL: process.env.MAIN_SERVER, // e.g. "https://example.com"
|
||||||
withCredentials: true,
|
withCredentials: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
const loginRes = (await axiosInstance.post(
|
const loginRes = (await axiosInstance.post(
|
||||||
`${process.env.MAIN_SERVER}/lst/api/auth/sign-in/username`,
|
`${process.env.MAIN_SERVER}/lst/api/auth/sign-in/username`,
|
||||||
{
|
{
|
||||||
username: process.env.MAIN_SERVER_USERNAME,
|
username: process.env.MAIN_SERVER_USERNAME,
|
||||||
password: process.env.MAIN_SERVER_PASSWORD,
|
password: process.env.MAIN_SERVER_PASSWORD,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
headers: { "Content-Type": "application/json" },
|
headers: { "Content-Type": "application/json" },
|
||||||
}
|
},
|
||||||
)) as any;
|
)) as any;
|
||||||
const setCookie = loginRes.headers["set-cookie"][0];
|
const setCookie = loginRes.headers["set-cookie"][0];
|
||||||
|
|
||||||
if (!setCookie) {
|
if (!setCookie) {
|
||||||
throw new Error("Did not receive a Set-Cookie header from login");
|
throw new Error("Did not receive a Set-Cookie header from login");
|
||||||
}
|
}
|
||||||
|
|
||||||
const { data, error } = await tryCatch(
|
const { data, error } = await tryCatch(
|
||||||
axios.post(
|
axios.post(
|
||||||
`${process.env.MAIN_SERVER}/lst/api/admin/server`,
|
`${process.env.MAIN_SERVER}/lst/api/admin/server`,
|
||||||
parsed.data,
|
parsed.data,
|
||||||
{
|
{
|
||||||
headers: {
|
headers: {
|
||||||
"Content-Type": "application/json",
|
"Content-Type": "application/json",
|
||||||
Cookie: setCookie.split(";")[0],
|
Cookie: setCookie.split(";")[0],
|
||||||
},
|
},
|
||||||
withCredentials: true,
|
withCredentials: true,
|
||||||
}
|
},
|
||||||
)
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
if (error) {
|
if (error) {
|
||||||
log.error(
|
log.error(
|
||||||
{ stack: error },
|
{ stack: error },
|
||||||
"There was an error adding the server to Main Server"
|
"There was an error adding the server to Main Server",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
log.info(
|
log.info(
|
||||||
{ stack: data?.data },
|
{ stack: data?.data },
|
||||||
"A new Server was just added to the server."
|
"A new Server was just added to the server.",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return res
|
return res
|
||||||
.status(201)
|
.status(201)
|
||||||
.json({ message: `Server ${data[0]?.name} added`, data: data });
|
.json({ message: `Server ${data[0]?.name} added`, data: data });
|
||||||
});
|
});
|
||||||
|
|
||||||
export default router;
|
export default router;
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user