Spaces:
Sleeping
Sleeping
fix: Resolve invitation validation error - determine org based on invited role
Browse files- Fixed 500 error when inviting users to projects
- Issue: InvitationCreate validator rejects both client_id and contractor_id
- Solution: Determine organization based on invited role
- Contractor roles (dispatcher, field_agent, driver) -> contractor_id
- Client roles (client_admin) -> client_id
- Ambiguous roles (sales_manager, sales_agent) -> default to contractor_id
- Prevents 'User cannot be linked to both client and contractor' validation error
- docs/devlogs/browser/browserconsole.txt +221 -230
- docs/devlogs/server/runtimeerror.txt +553 -64
- src/app/api/v1/projects.py +24 -2
docs/devlogs/browser/browserconsole.txt
CHANGED
|
@@ -1,232 +1,223 @@
|
|
| 1 |
-
chunk-276SZO74.js?v=
|
| 2 |
core.ts:167 %cGET%c https://kamau1-swiftops-backend.hf.space/api/v1/auth/me
|
| 3 |
-
react-router-dom.js?v=
|
| 4 |
-
warnOnce @ react-router-dom.js?v=
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
workLoop @ chunk-276SZO74.js?v=8b1c4295:197
|
| 17 |
-
flushWork @ chunk-276SZO74.js?v=8b1c4295:176
|
| 18 |
-
performWorkUntilDeadline @ chunk-276SZO74.js?v=8b1c4295:384
|
| 19 |
-
react-router-dom.js?v=8b1c4295:4393 ⚠️ React Router Future Flag Warning: Relative route resolution within Splat routes is changing in v7. You can use the `v7_relativeSplatPath` future flag to opt-in early. For more information, see https://reactrouter.com/v6/upgrading/future#v7_relativesplatpath.
|
| 20 |
-
warnOnce @ react-router-dom.js?v=8b1c4295:4393
|
| 21 |
-
logDeprecation @ react-router-dom.js?v=8b1c4295:4396
|
| 22 |
-
logV6DeprecationWarnings @ react-router-dom.js?v=8b1c4295:4402
|
| 23 |
-
(anonymous) @ react-router-dom.js?v=8b1c4295:5271
|
| 24 |
-
commitHookEffectListMount @ chunk-276SZO74.js?v=8b1c4295:16915
|
| 25 |
-
commitPassiveMountOnFiber @ chunk-276SZO74.js?v=8b1c4295:18156
|
| 26 |
-
commitPassiveMountEffects_complete @ chunk-276SZO74.js?v=8b1c4295:18129
|
| 27 |
-
commitPassiveMountEffects_begin @ chunk-276SZO74.js?v=8b1c4295:18119
|
| 28 |
-
commitPassiveMountEffects @ chunk-276SZO74.js?v=8b1c4295:18109
|
| 29 |
-
flushPassiveEffectsImpl @ chunk-276SZO74.js?v=8b1c4295:19490
|
| 30 |
-
flushPassiveEffects @ chunk-276SZO74.js?v=8b1c4295:19447
|
| 31 |
-
(anonymous) @ chunk-276SZO74.js?v=8b1c4295:19328
|
| 32 |
-
workLoop @ chunk-276SZO74.js?v=8b1c4295:197
|
| 33 |
-
flushWork @ chunk-276SZO74.js?v=8b1c4295:176
|
| 34 |
-
performWorkUntilDeadline @ chunk-276SZO74.js?v=8b1c4295:384
|
| 35 |
-
core.ts:167 GET https://kamau1-swiftops-backend.hf.space/api/v1/auth/me → 200 (824ms)
|
| 36 |
-
core.ts:167 %cGET%c https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/dashboard
|
| 37 |
-
core.ts:167 %cGET%c https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/activity-feed?limit=20
|
| 38 |
-
core.ts:117 ℹ️ [19:16:22] [COMPONENT] ProjectDashboardPage: Project dashboard loaded {projectId: '0ade6bd1-e492-4e25-b681-59f42058d29a', currentProject: 'Atomio Fttx'}
|
| 39 |
core.ts:167 %cGET%c https://kamau1-swiftops-backend.hf.space/api/v1/auth/me/preferences
|
| 40 |
-
|
| 41 |
-
core.ts:167 GET https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/
|
| 42 |
-
|
| 43 |
-
core.ts:167 GET https://kamau1-swiftops-backend.hf.space/api/v1/
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
|
| 47 |
-
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
|
| 55 |
-
|
| 56 |
-
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
|
| 66 |
-
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
|
| 70 |
-
|
| 71 |
-
|
| 72 |
-
|
| 73 |
-
|
| 74 |
-
|
| 75 |
-
|
| 76 |
-
|
| 77 |
-
|
| 78 |
-
|
| 79 |
-
|
| 80 |
-
|
| 81 |
-
|
| 82 |
-
|
| 83 |
-
|
| 84 |
-
|
| 85 |
-
|
| 86 |
-
|
| 87 |
-
|
| 88 |
-
|
| 89 |
-
|
| 90 |
-
|
| 91 |
-
|
| 92 |
-
|
| 93 |
-
|
| 94 |
-
|
| 95 |
-
|
| 96 |
-
|
| 97 |
-
|
| 98 |
-
|
| 99 |
-
|
| 100 |
-
|
| 101 |
-
|
| 102 |
-
|
| 103 |
-
|
| 104 |
-
|
| 105 |
-
|
| 106 |
-
|
| 107 |
-
|
| 108 |
-
|
| 109 |
-
|
| 110 |
-
|
| 111 |
-
|
| 112 |
-
|
| 113 |
-
|
| 114 |
-
|
| 115 |
-
|
| 116 |
-
|
| 117 |
-
|
| 118 |
-
|
| 119 |
-
|
| 120 |
-
|
| 121 |
-
|
| 122 |
-
|
| 123 |
-
|
| 124 |
-
|
| 125 |
-
core.ts:167
|
| 126 |
-
core.ts:
|
| 127 |
-
|
| 128 |
-
|
| 129 |
-
|
| 130 |
-
|
| 131 |
-
|
| 132 |
-
|
| 133 |
-
|
| 134 |
-
|
| 135 |
-
|
| 136 |
-
|
| 137 |
-
|
| 138 |
-
|
| 139 |
-
|
| 140 |
-
|
| 141 |
-
|
| 142 |
-
|
| 143 |
-
|
| 144 |
-
|
| 145 |
-
|
| 146 |
-
|
| 147 |
-
|
| 148 |
-
|
| 149 |
-
|
| 150 |
-
|
| 151 |
-
|
| 152 |
-
|
| 153 |
-
|
| 154 |
-
|
| 155 |
-
|
| 156 |
-
|
| 157 |
-
|
| 158 |
-
|
| 159 |
-
|
| 160 |
-
|
| 161 |
-
|
| 162 |
-
|
| 163 |
-
|
| 164 |
-
|
| 165 |
-
|
| 166 |
-
|
| 167 |
-
|
| 168 |
-
|
| 169 |
-
|
| 170 |
-
|
| 171 |
-
|
| 172 |
-
|
| 173 |
-
|
| 174 |
-
|
| 175 |
-
|
| 176 |
-
|
| 177 |
-
|
| 178 |
-
|
| 179 |
-
|
| 180 |
-
|
| 181 |
-
|
| 182 |
-
|
| 183 |
-
|
| 184 |
-
|
| 185 |
-
|
| 186 |
-
|
| 187 |
-
|
| 188 |
-
|
| 189 |
-
|
| 190 |
-
|
| 191 |
-
|
| 192 |
-
|
| 193 |
-
|
| 194 |
-
|
| 195 |
-
|
| 196 |
-
|
| 197 |
-
|
| 198 |
-
|
| 199 |
-
|
| 200 |
-
|
| 201 |
-
|
| 202 |
-
|
| 203 |
-
|
| 204 |
-
|
| 205 |
-
|
| 206 |
-
|
| 207 |
-
|
| 208 |
-
|
| 209 |
-
|
| 210 |
-
|
| 211 |
-
|
| 212 |
-
|
| 213 |
-
|
| 214 |
-
|
| 215 |
-
|
| 216 |
-
|
| 217 |
-
|
| 218 |
-
|
| 219 |
-
|
| 220 |
-
|
| 221 |
-
|
| 222 |
-
|
| 223 |
-
|
| 224 |
-
|
| 225 |
-
|
| 226 |
-
|
| 227 |
-
|
| 228 |
-
|
| 229 |
-
|
| 230 |
-
|
| 231 |
-
|
| 232 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
chunk-276SZO74.js?v=24003d58:21551 Download the React DevTools for a better development experience: https://reactjs.org/link/react-devtools
|
| 2 |
core.ts:167 %cGET%c https://kamau1-swiftops-backend.hf.space/api/v1/auth/me
|
| 3 |
+
react-router-dom.js?v=24003d58:4393 ⚠️ React Router Future Flag Warning: React Router will begin wrapping state updates in `React.startTransition` in v7. You can use the `v7_startTransition` future flag to opt-in early. For more information, see https://reactrouter.com/v6/upgrading/future#v7_starttransition.
|
| 4 |
+
warnOnce @ react-router-dom.js?v=24003d58:4393
|
| 5 |
+
react-router-dom.js?v=24003d58:4393 ⚠️ React Router Future Flag Warning: Relative route resolution within Splat routes is changing in v7. You can use the `v7_relativeSplatPath` future flag to opt-in early. For more information, see https://reactrouter.com/v6/upgrading/future#v7_relativesplatpath.
|
| 6 |
+
warnOnce @ react-router-dom.js?v=24003d58:4393
|
| 7 |
+
core.ts:167 GET https://kamau1-swiftops-backend.hf.space/api/v1/auth/me → 200 (1.05s)
|
| 8 |
+
InviteUserModal.tsx?t=1763972253137:82 InviteUserModal render: Object
|
| 9 |
+
core.ts:167 %cGET%c https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/project-roles
|
| 10 |
+
core.ts:167 %cGET%c https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/regions
|
| 11 |
+
core.ts:167 %cGET%c https://kamau1-swiftops-backend.hf.space/api/v1/users?skip=0&limit=100
|
| 12 |
+
core.ts:167 %cGET%c https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/subcontractors
|
| 13 |
+
core.ts:167 %cGET%c https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/team
|
| 14 |
+
core.ts:167 %cGET%c https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/team/invitations
|
| 15 |
+
core.ts:117 ℹ️ [08:18:49] [COMPONENT] TeamPage: Team page loaded Object
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 16 |
core.ts:167 %cGET%c https://kamau1-swiftops-backend.hf.space/api/v1/auth/me/preferences
|
| 17 |
+
InviteUserModal.tsx?t=1763972253137:82 InviteUserModal render: Object
|
| 18 |
+
core.ts:167 GET https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/regions → 200 (744ms)
|
| 19 |
+
InviteUserModal.tsx?t=1763972253137:82 InviteUserModal render: Object
|
| 20 |
+
core.ts:167 GET https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/project-roles → 200 (890ms)
|
| 21 |
+
InviteUserModal.tsx?t=1763972253137:82 InviteUserModal render: Object
|
| 22 |
+
core.ts:167 GET https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/team/invitations → 200 (949ms)
|
| 23 |
+
InviteUserModal.tsx?t=1763972253137:82 InviteUserModal render: Object
|
| 24 |
+
core.ts:167 GET https://kamau1-swiftops-backend.hf.space/api/v1/users?skip=0&limit=100 → 200 (1.01s)
|
| 25 |
+
core.ts:167 GET https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/team → 200 (1.10s)
|
| 26 |
+
InviteUserModal.tsx?t=1763972253137:82 InviteUserModal render: Object
|
| 27 |
+
core.ts:167 GET https://kamau1-swiftops-backend.hf.space/api/v1/auth/me/preferences → 200 (1.14s)
|
| 28 |
+
core.ts:167 GET https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/subcontractors → 200 (1.20s)
|
| 29 |
+
InviteUserModal.tsx?t=1763972253137:82 InviteUserModal render: Object
|
| 30 |
+
InviteUserModal.tsx?t=1763972253137:82 InviteUserModal render: Object
|
| 31 |
+
InviteUserModal.tsx?t=1763972253137:82 InviteUserModal render: Object
|
| 32 |
+
InviteUserModal.tsx?t=1763972253137:82 InviteUserModal render: Object
|
| 33 |
+
core.ts:117 ℹ️ [08:19:10] [COMPONENT] AppLauncher: App clicked Object
|
| 34 |
+
core.ts:117 ℹ️ [08:19:10] [COMPONENT] AppLauncher: Navigation decision Object
|
| 35 |
+
core.ts:117 ℹ️ [08:19:10] [COMPONENT] AppLauncher: Navigating to project-scoped route Object
|
| 36 |
+
InviteUserModal.tsx?t=1763972253137:82 InviteUserModal render: Object
|
| 37 |
+
core.ts:167 %cGET%c https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/team/invitations/stats
|
| 38 |
+
core.ts:117 ℹ️ [08:19:10] [COMPONENT] InvitationsPage: Invitations page loaded Object
|
| 39 |
+
InviteUserModal.tsx?t=1763972253137:82 InviteUserModal render: Object
|
| 40 |
+
core.ts:167 GET https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/team/invitations/stats → 200 (711ms)
|
| 41 |
+
InviteUserModal.tsx?t=1763972253137:82 InviteUserModal render: Object
|
| 42 |
+
InviteUserModal.tsx?t=1763972253137:82 InviteUserModal render: Object
|
| 43 |
+
InviteUserModal.tsx?t=1763972253137:82 InviteUserModal render: Object
|
| 44 |
+
InviteUserModal.tsx?t=1763972253137:82 InviteUserModal render: Object
|
| 45 |
+
InviteUserModal.tsx?t=1763972253137:82 InviteUserModal render: Object
|
| 46 |
+
The deferred DOM Node could not be resolved to a valid node.
|
| 47 |
+
InviteUserModal.tsx?t=1763972253137:82 InviteUserModal render: {projectId: '0ade6bd1-e492-4e25-b681-59f42058d29a', rolesCount: 2, isLoadingRoles: false}isLoadingRoles: falseprojectId: "0ade6bd1-e492-4e25-b681-59f42058d29a"rolesCount: 2[[Prototype]]: Objectconstructor: ƒ Object()hasOwnProperty: ƒ hasOwnProperty()isPrototypeOf: ƒ isPrototypeOf()propertyIsEnumerable: ƒ propertyIsEnumerable()toLocaleString: ƒ toLocaleString()toString: ƒ toString()valueOf: ƒ valueOf()__defineGetter__: ƒ __defineGetter__()__defineSetter__: ƒ __defineSetter__()__lookupGetter__: ƒ __lookupGetter__()__lookupSetter__: ƒ __lookupSetter__()__proto__: (...)get __proto__: ƒ __proto__()set __proto__: ƒ __proto__()
|
| 48 |
+
InviteUserModal.tsx?t=1763973191648:82 InviteUserModal render: {projectId: '0ade6bd1-e492-4e25-b681-59f42058d29a', rolesCount: 2, isLoadingRoles: false}
|
| 49 |
+
InviteUserModal.tsx?t=1763972253137:53 InviteUserModal fetching roles for: 0ade6bd1-e492-4e25-b681-59f42058d29a
|
| 50 |
+
core.ts:167 %cGET%c https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/project-roles
|
| 51 |
+
core.ts:167 %cGET%c https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/regions
|
| 52 |
+
core.ts:167 %cGET%c https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/subcontractors
|
| 53 |
+
InviteUserModal.tsx?t=1763973191648:82 InviteUserModal render: {projectId: '0ade6bd1-e492-4e25-b681-59f42058d29a', rolesCount: 2, isLoadingRoles: false}
|
| 54 |
+
core.ts:167 GET https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/regions → 200 (3.44s)
|
| 55 |
+
core.ts:167 GET https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/project-roles → 200 (4.16s)
|
| 56 |
+
core.ts:167 GET https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/subcontractors → 200 (4.17s)
|
| 57 |
+
client:602 GET http://localhost:8080/src/components/team/ImportUserModal.tsx?t=1763973237149 net::ERR_ABORTED 500 (Internal Server Error)
|
| 58 |
+
importUpdatedModule @ client:602
|
| 59 |
+
fetchUpdate @ client:211
|
| 60 |
+
queueUpdate @ client:186
|
| 61 |
+
(anonymous) @ client:642
|
| 62 |
+
handleMessage @ client:640
|
| 63 |
+
(anonymous) @ client:550
|
| 64 |
+
client:602 GET http://localhost:8080/src/components/team/ImportUserModal.tsx?t=1763973237137 net::ERR_ABORTED 500 (Internal Server Error)
|
| 65 |
+
importUpdatedModule @ client:602
|
| 66 |
+
fetchUpdate @ client:211
|
| 67 |
+
queueUpdate @ client:186
|
| 68 |
+
(anonymous) @ client:642
|
| 69 |
+
handleMessage @ client:640
|
| 70 |
+
(anonymous) @ client:550
|
| 71 |
+
client:176 [hmr] Failed to reload /src/components/team/ImportUserModal.tsx. This could be due to syntax errors or importing non-existent modules. (see errors above)
|
| 72 |
+
warnFailedUpdate @ client:176
|
| 73 |
+
fetchUpdate @ client:213
|
| 74 |
+
await in fetchUpdate
|
| 75 |
+
queueUpdate @ client:186
|
| 76 |
+
(anonymous) @ client:642
|
| 77 |
+
handleMessage @ client:640
|
| 78 |
+
(anonymous) @ client:550
|
| 79 |
+
client:176 [hmr] Failed to reload /src/components/team/ImportUserModal.tsx. This could be due to syntax errors or importing non-existent modules. (see errors above)
|
| 80 |
+
warnFailedUpdate @ client:176
|
| 81 |
+
fetchUpdate @ client:213
|
| 82 |
+
await in fetchUpdate
|
| 83 |
+
queueUpdate @ client:186
|
| 84 |
+
(anonymous) @ client:642
|
| 85 |
+
handleMessage @ client:640
|
| 86 |
+
(anonymous) @ client:550
|
| 87 |
+
InviteUserModal.tsx?t=1763973191648:82 InviteUserModal render: {projectId: '0ade6bd1-e492-4e25-b681-59f42058d29a', rolesCount: 2, isLoadingRoles: false}
|
| 88 |
+
InviteUserModal.tsx?t=1763973783972:82 InviteUserModal render: {projectId: '0ade6bd1-e492-4e25-b681-59f42058d29a', rolesCount: 2, isLoadingRoles: false}
|
| 89 |
+
InviteUserModal.tsx?t=1763973191648:53 InviteUserModal fetching roles for: 0ade6bd1-e492-4e25-b681-59f42058d29a
|
| 90 |
+
core.ts:167 %cGET%c https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/project-roles
|
| 91 |
+
core.ts:167 %cGET%c https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/regions
|
| 92 |
+
core.ts:167 %cGET%c https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/subcontractors
|
| 93 |
+
InviteUserModal.tsx?t=1763973783972:82 InviteUserModal render: {projectId: '0ade6bd1-e492-4e25-b681-59f42058d29a', rolesCount: 2, isLoadingRoles: false}
|
| 94 |
+
core.ts:167 GET https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/project-roles → 200 (1.05s)
|
| 95 |
+
core.ts:167 GET https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/regions → 200 (1.17s)
|
| 96 |
+
core.ts:167 GET https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/subcontractors → 200 (1.18s)
|
| 97 |
+
InviteUserModal.tsx?t=1763974026761:82 InviteUserModal render: {projectId: '0ade6bd1-e492-4e25-b681-59f42058d29a', rolesCount: 2, isLoadingRoles: false}
|
| 98 |
+
InviteUserModal.tsx?t=1763974026761:82 InviteUserModal render: {projectId: '0ade6bd1-e492-4e25-b681-59f42058d29a', rolesCount: 2, isLoadingRoles: false}
|
| 99 |
+
InviteUserModal.tsx?t=1763974026761:82 InviteUserModal render: {projectId: '0ade6bd1-e492-4e25-b681-59f42058d29a', rolesCount: 2, isLoadingRoles: false}
|
| 100 |
+
InviteUserModal.tsx?t=1763974026761:82 InviteUserModal render: {projectId: '0ade6bd1-e492-4e25-b681-59f42058d29a', rolesCount: 2, isLoadingRoles: false}
|
| 101 |
+
core.ts:167 %cGET%c https://kamau1-swiftops-backend.hf.space/api/v1/users?skip=0&limit=100
|
| 102 |
+
core.ts:167 %cGET%c https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/team
|
| 103 |
+
core.ts:117 ℹ️ [08:47:38] [COMPONENT] TeamPage: Team page loaded {projectId: '0ade6bd1-e492-4e25-b681-59f42058d29a', currentProject: 'Atomio Fttx'}
|
| 104 |
+
InviteUserModal.tsx?t=1763974026761:82 InviteUserModal render: {projectId: '0ade6bd1-e492-4e25-b681-59f42058d29a', rolesCount: 2, isLoadingRoles: false}
|
| 105 |
+
core.ts:167 GET https://kamau1-swiftops-backend.hf.space/api/v1/users?skip=0&limit=100 → 200 (1.00s)
|
| 106 |
+
core.ts:167 GET https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/team → 200 (1.16s)
|
| 107 |
+
InviteUserModal.tsx?t=1763974026761:82 InviteUserModal render: {projectId: '0ade6bd1-e492-4e25-b681-59f42058d29a', rolesCount: 2, isLoadingRoles: false}
|
| 108 |
+
InviteUserModal.tsx?t=1763974026761:82 InviteUserModal render: {projectId: '0ade6bd1-e492-4e25-b681-59f42058d29a', rolesCount: 2, isLoadingRoles: false}
|
| 109 |
+
InviteUserModal.tsx?t=1763974026761:82 InviteUserModal render: {projectId: '0ade6bd1-e492-4e25-b681-59f42058d29a', rolesCount: 2, isLoadingRoles: false}
|
| 110 |
+
InviteUserModal.tsx?t=1763974026761:82 InviteUserModal render: {projectId: '0ade6bd1-e492-4e25-b681-59f42058d29a', rolesCount: 2, isLoadingRoles: false}
|
| 111 |
+
InviteUserModal.tsx?t=1763974026761:82 InviteUserModal render: {projectId: '0ade6bd1-e492-4e25-b681-59f42058d29a', rolesCount: 2, isLoadingRoles: false}
|
| 112 |
+
InviteUserModal.tsx?t=1763974026761:82 InviteUserModal render: {projectId: '0ade6bd1-e492-4e25-b681-59f42058d29a', rolesCount: 2, isLoadingRoles: false}
|
| 113 |
+
InviteUserModal.tsx?t=1763974026761:82 InviteUserModal render: {projectId: '0ade6bd1-e492-4e25-b681-59f42058d29a', rolesCount: 2, isLoadingRoles: false}
|
| 114 |
+
InviteUserModal.tsx?t=1763974026761:82 InviteUserModal render: {projectId: '0ade6bd1-e492-4e25-b681-59f42058d29a', rolesCount: 2, isLoadingRoles: false}
|
| 115 |
+
InviteUserModal.tsx?t=1763974026761:82 InviteUserModal render: {projectId: '0ade6bd1-e492-4e25-b681-59f42058d29a', rolesCount: 2, isLoadingRoles: false}
|
| 116 |
+
InviteUserModal.tsx?t=1763974026761:82 InviteUserModal render: {projectId: '0ade6bd1-e492-4e25-b681-59f42058d29a', rolesCount: 2, isLoadingRoles: false}
|
| 117 |
+
InviteUserModal.tsx?t=1763974026761:82 InviteUserModal render: {projectId: '0ade6bd1-e492-4e25-b681-59f42058d29a', rolesCount: 2, isLoadingRoles: false}
|
| 118 |
+
InviteUserModal.tsx?t=1763974026761:82 InviteUserModal render: {projectId: '0ade6bd1-e492-4e25-b681-59f42058d29a', rolesCount: 2, isLoadingRoles: false}
|
| 119 |
+
InviteUserModal.tsx?t=1763974026761:82 InviteUserModal render: {projectId: '0ade6bd1-e492-4e25-b681-59f42058d29a', rolesCount: 2, isLoadingRoles: false}
|
| 120 |
+
core.ts:167 %cPOST%c https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/team/invite
|
| 121 |
+
InviteUserModal.tsx?t=1763974026761:82 InviteUserModal render: {projectId: '0ade6bd1-e492-4e25-b681-59f42058d29a', rolesCount: 2, isLoadingRoles: false}
|
| 122 |
+
project-setup.service.ts:361 POST https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/team/invite 500 (Internal Server Error)
|
| 123 |
+
inviteTeamMember @ project-setup.service.ts:361
|
| 124 |
+
handleSubmit @ InviteUserModal.tsx?t=1763974026761:126
|
| 125 |
+
callCallback2 @ chunk-276SZO74.js?v=24003d58:3674
|
| 126 |
+
invokeGuardedCallbackDev @ chunk-276SZO74.js?v=24003d58:3699
|
| 127 |
+
invokeGuardedCallback @ chunk-276SZO74.js?v=24003d58:3733
|
| 128 |
+
invokeGuardedCallbackAndCatchFirstError @ chunk-276SZO74.js?v=24003d58:3736
|
| 129 |
+
executeDispatch @ chunk-276SZO74.js?v=24003d58:7014
|
| 130 |
+
processDispatchQueueItemsInOrder @ chunk-276SZO74.js?v=24003d58:7034
|
| 131 |
+
processDispatchQueue @ chunk-276SZO74.js?v=24003d58:7043
|
| 132 |
+
dispatchEventsForPlugins @ chunk-276SZO74.js?v=24003d58:7051
|
| 133 |
+
(anonymous) @ chunk-276SZO74.js?v=24003d58:7174
|
| 134 |
+
batchedUpdates$1 @ chunk-276SZO74.js?v=24003d58:18913
|
| 135 |
+
batchedUpdates @ chunk-276SZO74.js?v=24003d58:3579
|
| 136 |
+
dispatchEventForPluginEventSystem @ chunk-276SZO74.js?v=24003d58:7173
|
| 137 |
+
dispatchEventWithEnableCapturePhaseSelectiveHydrationWithoutDiscreteEventReplay @ chunk-276SZO74.js?v=24003d58:5478
|
| 138 |
+
dispatchEvent @ chunk-276SZO74.js?v=24003d58:5472
|
| 139 |
+
dispatchDiscreteEvent @ chunk-276SZO74.js?v=24003d58:5449
|
| 140 |
+
core.ts:167 POST https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/team/invite → 500 (1.22s)
|
| 141 |
+
InviteUserModal.tsx?t=1763974026761:82 InviteUserModal render: {projectId: '0ade6bd1-e492-4e25-b681-59f42058d29a', rolesCount: 2, isLoadingRoles: false}
|
| 142 |
+
chunk-276SZO74.js?v=24003d58:521 Warning: Cannot update a component (`ForwardRef`) while rendering a different component (`ForwardRef`). To locate the bad setState() call inside `ForwardRef`, follow the stack trace as described in https://reactjs.org/link/setstate-in-render
|
| 143 |
+
at http://localhost:8080/node_modules/.vite/deps/sonner.js?v=24003d58:269:17
|
| 144 |
+
at Toaster (http://localhost:8080/src/components/ui/sonner.tsx:24:23)
|
| 145 |
+
at Provider (http://localhost:8080/node_modules/.vite/deps/chunk-3RXG37ZK.js?v=24003d58:38:15)
|
| 146 |
+
at TooltipProvider (http://localhost:8080/node_modules/.vite/deps/@radix-ui_react-tooltip.js?v=24003d58:65:5)
|
| 147 |
+
at ThemeProvider (http://localhost:8080/src/contexts/ThemeProvider.tsx:29:33)
|
| 148 |
+
at UserPreferencesProvider (http://localhost:8080/src/contexts/UserPreferencesContext.tsx:28:43)
|
| 149 |
+
at QueryClientProvider (http://localhost:8080/node_modules/.vite/deps/@tanstack_react-query.js?v=24003d58:2934:3)
|
| 150 |
+
at App (http://localhost:8080/src/App.tsx?t=1763972253137:149:35)
|
| 151 |
+
printWarning @ chunk-276SZO74.js?v=24003d58:521
|
| 152 |
+
error @ chunk-276SZO74.js?v=24003d58:505
|
| 153 |
+
warnAboutRenderPhaseUpdatesInDEV @ chunk-276SZO74.js?v=24003d58:19793
|
| 154 |
+
scheduleUpdateOnFiber @ chunk-276SZO74.js?v=24003d58:18546
|
| 155 |
+
dispatchSetState @ chunk-276SZO74.js?v=24003d58:12403
|
| 156 |
+
(anonymous) @ sonner.js?v=24003d58:277
|
| 157 |
+
(anonymous) @ sonner.js?v=24003d58:68
|
| 158 |
+
dismiss @ sonner.js?v=24003d58:68
|
| 159 |
+
(anonymous) @ sonner.js?v=24003d58:272
|
| 160 |
+
basicStateReducer @ chunk-276SZO74.js?v=24003d58:11703
|
| 161 |
+
updateReducer @ chunk-276SZO74.js?v=24003d58:11794
|
| 162 |
+
updateState @ chunk-276SZO74.js?v=24003d58:12021
|
| 163 |
+
useState @ chunk-276SZO74.js?v=24003d58:12753
|
| 164 |
+
useState @ chunk-ZMLY2J2T.js?v=24003d58:1066
|
| 165 |
+
(anonymous) @ sonner.js?v=24003d58:269
|
| 166 |
+
renderWithHooks @ chunk-276SZO74.js?v=24003d58:11548
|
| 167 |
+
updateForwardRef @ chunk-276SZO74.js?v=24003d58:14325
|
| 168 |
+
beginWork @ chunk-276SZO74.js?v=24003d58:15946
|
| 169 |
+
beginWork$1 @ chunk-276SZO74.js?v=24003d58:19753
|
| 170 |
+
performUnitOfWork @ chunk-276SZO74.js?v=24003d58:19198
|
| 171 |
+
workLoopSync @ chunk-276SZO74.js?v=24003d58:19137
|
| 172 |
+
renderRootSync @ chunk-276SZO74.js?v=24003d58:19116
|
| 173 |
+
performConcurrentWorkOnRoot @ chunk-276SZO74.js?v=24003d58:18678
|
| 174 |
+
workLoop @ chunk-276SZO74.js?v=24003d58:197
|
| 175 |
+
flushWork @ chunk-276SZO74.js?v=24003d58:176
|
| 176 |
+
performWorkUntilDeadline @ chunk-276SZO74.js?v=24003d58:384
|
| 177 |
+
InviteUserModal render: {projectId: '0ade6bd1-e492-4e25-b681-59f42058d29a', rolesCount: 2, isLoadingRoles: false}
|
| 178 |
+
InviteUserModal fetching roles for: 0ade6bd1-e492-4e25-b681-59f42058d29a
|
| 179 |
+
InviteUserModal fetching roles for: 0ade6bd1-e492-4e25-b681-59f42058d29a
|
| 180 |
+
InviteUserModal fetching roles for: 0ade6bd1-e492-4e25-b681-59f42058d29a
|
| 181 |
+
InviteUserModal fetching roles for: 0ade6bd1-e492-4e25-b681-59f42058d29a
|
| 182 |
+
InviteUserModal render: {projectId: '0ade6bd1-e492-4e25-b681-59f42058d29a', rolesCount: 2, isLoadingRoles: false}
|
| 183 |
+
InviteUserModal fetching roles for: 0ade6bd1-e492-4e25-b681-59f42058d29a
|
| 184 |
+
InviteUserModal render: {projectId: '0ade6bd1-e492-4e25-b681-59f42058d29a', rolesCount: 2, isLoadingRoles: false}
|
| 185 |
+
InviteUserModal fetching roles for: 0ade6bd1-e492-4e25-b681-59f42058d29a
|
| 186 |
+
%cGET%c https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/project-roles
|
| 187 |
+
%cGET%c https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/regions
|
| 188 |
+
%cGET%c https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/subcontractors
|
| 189 |
+
GET https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/subcontractors → 200 (812ms)
|
| 190 |
+
GET https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/regions → 200 (972ms)
|
| 191 |
+
GET https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/project-roles → 200 (977ms)
|
| 192 |
+
InviteUserModal render: {projectId: '0ade6bd1-e492-4e25-b681-59f42058d29a', rolesCount: 2, isLoadingRoles: false}
|
| 193 |
+
InviteUserModal render: {projectId: '0ade6bd1-e492-4e25-b681-59f42058d29a', rolesCount: 2, isLoadingRoles: false}
|
| 194 |
+
InviteUserModal render: {projectId: '0ade6bd1-e492-4e25-b681-59f42058d29a', rolesCount: 2, isLoadingRoles: false}
|
| 195 |
+
InviteUserModal render: {projectId: '0ade6bd1-e492-4e25-b681-59f42058d29a', rolesCount: 2, isLoadingRoles: false}
|
| 196 |
+
InviteUserModal render: {projectId: '0ade6bd1-e492-4e25-b681-59f42058d29a', rolesCount: 2, isLoadingRoles: false}
|
| 197 |
+
InviteUserModal render: {projectId: '0ade6bd1-e492-4e25-b681-59f42058d29a', rolesCount: 2, isLoadingRoles: false}
|
| 198 |
+
InviteUserModal render: {projectId: '0ade6bd1-e492-4e25-b681-59f42058d29a', rolesCount: 2, isLoadingRoles: false}
|
| 199 |
+
InviteUserModal render: {projectId: '0ade6bd1-e492-4e25-b681-59f42058d29a', rolesCount: 2, isLoadingRoles: false}
|
| 200 |
+
InviteUserModal render: {projectId: '0ade6bd1-e492-4e25-b681-59f42058d29a', rolesCount: 2, isLoadingRoles: false}
|
| 201 |
+
InviteUserModal render: {projectId: '0ade6bd1-e492-4e25-b681-59f42058d29a', rolesCount: 2, isLoadingRoles: false}
|
| 202 |
+
%cPOST%c https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/team/invite
|
| 203 |
+
InviteUserModal render: {projectId: '0ade6bd1-e492-4e25-b681-59f42058d29a', rolesCount: 2, isLoadingRoles: false}
|
| 204 |
+
POST https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/team/invite 500 (Internal Server Error)
|
| 205 |
+
inviteTeamMember @ project-setup.servic…t=1763970262902:212
|
| 206 |
+
handleSubmit @ InviteUserModal.tsx?t=1763974687454:138
|
| 207 |
+
callCallback2 @ chunk-276SZO74.js?v=24003d58:3674
|
| 208 |
+
invokeGuardedCallbackDev @ chunk-276SZO74.js?v=24003d58:3699
|
| 209 |
+
invokeGuardedCallback @ chunk-276SZO74.js?v=24003d58:3733
|
| 210 |
+
invokeGuardedCallbackAndCatchFirstError @ chunk-276SZO74.js?v=24003d58:3736
|
| 211 |
+
executeDispatch @ chunk-276SZO74.js?v=24003d58:7014
|
| 212 |
+
processDispatchQueueItemsInOrder @ chunk-276SZO74.js?v=24003d58:7034
|
| 213 |
+
processDispatchQueue @ chunk-276SZO74.js?v=24003d58:7043
|
| 214 |
+
dispatchEventsForPlugins @ chunk-276SZO74.js?v=24003d58:7051
|
| 215 |
+
(anonymous) @ chunk-276SZO74.js?v=24003d58:7174
|
| 216 |
+
batchedUpdates$1 @ chunk-276SZO74.js?v=24003d58:18913
|
| 217 |
+
batchedUpdates @ chunk-276SZO74.js?v=24003d58:3579
|
| 218 |
+
dispatchEventForPluginEventSystem @ chunk-276SZO74.js?v=24003d58:7173
|
| 219 |
+
dispatchEventWithEnableCapturePhaseSelectiveHydrationWithoutDiscreteEventReplay @ chunk-276SZO74.js?v=24003d58:5478
|
| 220 |
+
dispatchEvent @ chunk-276SZO74.js?v=24003d58:5472
|
| 221 |
+
dispatchDiscreteEvent @ chunk-276SZO74.js?v=24003d58:5449
|
| 222 |
+
POST https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/team/invite → 500 (1.27s)
|
| 223 |
+
InviteUserModal render: {projectId: '0ade6bd1-e492-4e25-b681-59f42058d29a', rolesCount: 2, isLoadingRoles: false}
|
docs/devlogs/server/runtimeerror.txt
CHANGED
|
@@ -1,69 +1,558 @@
|
|
| 1 |
-
===== Application Startup at 2025-11-24
|
| 2 |
|
| 3 |
INFO: Started server process [7]
|
| 4 |
INFO: Waiting for application startup.
|
| 5 |
-
INFO: 2025-11-
|
| 6 |
-
INFO: 2025-11-
|
| 7 |
-
INFO: 2025-11-
|
| 8 |
-
INFO: 2025-11-
|
| 9 |
-
INFO: 2025-11-
|
| 10 |
-
INFO: 2025-11-
|
| 11 |
-
INFO: 2025-11-
|
| 12 |
-
INFO: 2025-11-
|
| 13 |
-
INFO: 2025-11-
|
| 14 |
-
INFO: 2025-11-
|
| 15 |
-
INFO: 2025-11-
|
| 16 |
-
INFO: 2025-11-
|
| 17 |
-
INFO: 2025-11-
|
| 18 |
-
INFO: 2025-11-
|
| 19 |
-
INFO: 2025-11-
|
| 20 |
-
INFO: 2025-11-
|
| 21 |
-
INFO: 2025-11-
|
| 22 |
INFO: Application startup complete.
|
| 23 |
INFO: Uvicorn running on http://0.0.0.0:7860 (Press CTRL+C to quit)
|
| 24 |
-
INFO: 10.16.
|
| 25 |
-
INFO:
|
| 26 |
-
INFO:
|
| 27 |
-
INFO: 10.16.
|
| 28 |
-
INFO:
|
| 29 |
-
INFO:
|
| 30 |
-
INFO: 10.16.
|
| 31 |
-
INFO:
|
| 32 |
-
INFO:
|
| 33 |
-
INFO: 10.16.
|
| 34 |
-
INFO: 10.16.
|
| 35 |
-
INFO: 10.16.
|
| 36 |
-
INFO: 10.16.
|
| 37 |
-
INFO:
|
| 38 |
-
INFO:
|
| 39 |
-
INFO: 2025-11-
|
| 40 |
-
INFO: 2025-11-
|
| 41 |
-
INFO: 10.16.
|
| 42 |
-
INFO: 2025-11-
|
| 43 |
-
INFO: 2025-11-
|
| 44 |
-
INFO:
|
| 45 |
-
INFO: 2025-11-
|
| 46 |
-
INFO:
|
| 47 |
-
INFO: 2025-11-
|
| 48 |
-
INFO: 2025-11-
|
| 49 |
-
INFO: 10.16.
|
| 50 |
-
INFO: 2025-11-
|
| 51 |
-
INFO: 2025-11-
|
| 52 |
-
INFO: 10.16.
|
| 53 |
-
INFO: 2025-11-
|
| 54 |
-
INFO: 2025-11-
|
| 55 |
-
INFO: 10.16.
|
| 56 |
-
INFO:
|
| 57 |
-
INFO:
|
| 58 |
-
INFO: 10.16.
|
| 59 |
-
INFO: 2025-11-24T07:
|
| 60 |
-
INFO: 2025-11-24T07:
|
| 61 |
-
INFO:
|
| 62 |
-
INFO: 2025-11-24T07:
|
| 63 |
-
INFO:
|
| 64 |
-
INFO:
|
| 65 |
-
INFO: 2025-11-24T07:
|
| 66 |
-
INFO:
|
| 67 |
-
INFO: 10.16.6.70:
|
| 68 |
-
INFO:
|
| 69 |
-
INFO:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
===== Application Startup at 2025-11-24 07:38:50 =====
|
| 2 |
|
| 3 |
INFO: Started server process [7]
|
| 4 |
INFO: Waiting for application startup.
|
| 5 |
+
INFO: 2025-11-24T07:39:02 - app.main: ============================================================
|
| 6 |
+
INFO: 2025-11-24T07:39:02 - app.main: 🚀 SwiftOps API v1.0.0 | PRODUCTION
|
| 7 |
+
INFO: 2025-11-24T07:39:02 - app.main: 📊 Dashboard: Enabled
|
| 8 |
+
INFO: 2025-11-24T07:39:02 - app.main: ============================================================
|
| 9 |
+
INFO: 2025-11-24T07:39:02 - app.main: 📦 Database:
|
| 10 |
+
INFO: 2025-11-24T07:39:02 - app.main: ✓ Connected | 44 tables | 5 users
|
| 11 |
+
INFO: 2025-11-24T07:39:02 - app.main: 💾 Cache & Sessions:
|
| 12 |
+
INFO: 2025-11-24T07:39:03 - app.services.otp_service: ✅ OTP Service initialized with Redis storage
|
| 13 |
+
INFO: 2025-11-24T07:39:04 - app.main: ✓ Redis: Connected
|
| 14 |
+
INFO: 2025-11-24T07:39:04 - app.main: 🔌 External Services:
|
| 15 |
+
INFO: 2025-11-24T07:39:04 - app.main: ✓ Cloudinary: Connected
|
| 16 |
+
INFO: 2025-11-24T07:39:04 - app.main: ✓ Resend: Configured
|
| 17 |
+
INFO: 2025-11-24T07:39:04 - app.main: ✓ WASender: Connected
|
| 18 |
+
INFO: 2025-11-24T07:39:04 - app.main: ✓ Supabase: Connected | 6 buckets
|
| 19 |
+
INFO: 2025-11-24T07:39:04 - app.main: ============================================================
|
| 20 |
+
INFO: 2025-11-24T07:39:04 - app.main: ✅ Startup complete | Ready to serve requests
|
| 21 |
+
INFO: 2025-11-24T07:39:04 - app.main: ============================================================
|
| 22 |
INFO: Application startup complete.
|
| 23 |
INFO: Uvicorn running on http://0.0.0.0:7860 (Press CTRL+C to quit)
|
| 24 |
+
INFO: 10.16.30.104:35389 - "GET /health HTTP/1.1" 200 OK
|
| 25 |
+
INFO: 10.16.30.104:47145 - "GET /health HTTP/1.1" 200 OK
|
| 26 |
+
INFO: 10.16.13.17:44717 - "GET /health HTTP/1.1" 200 OK
|
| 27 |
+
INFO: 10.16.30.104:43954 - "GET /health HTTP/1.1" 200 OK
|
| 28 |
+
INFO: 10.16.6.70:41515 - "GET /health HTTP/1.1" 200 OK
|
| 29 |
+
INFO: 10.16.30.104:42373 - "GET / HTTP/1.1" 200 OK
|
| 30 |
+
INFO: 10.16.13.17:37883 - "GET /health HTTP/1.1" 200 OK
|
| 31 |
+
INFO: 10.16.13.17:43226 - "GET /health HTTP/1.1" 200 OK
|
| 32 |
+
INFO: 10.16.6.70:4493 - "GET /health HTTP/1.1" 200 OK
|
| 33 |
+
INFO: 10.16.30.104:15047 - "GET /health HTTP/1.1" 200 OK
|
| 34 |
+
INFO: 10.16.30.104:7341 - "GET /health HTTP/1.1" 200 OK
|
| 35 |
+
INFO: 10.16.13.17:64655 - "GET /health HTTP/1.1" 200 OK
|
| 36 |
+
INFO: 10.16.30.104:46857 - "GET /health HTTP/1.1" 200 OK
|
| 37 |
+
INFO: 10.16.13.17:57986 - "GET /health HTTP/1.1" 200 OK
|
| 38 |
+
INFO: 10.16.13.17:9777 - "GET /health HTTP/1.1" 200 OK
|
| 39 |
+
INFO: 2025-11-24T07:48:18 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 40 |
+
INFO: 2025-11-24T07:48:18 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 41 |
+
INFO: 10.16.30.104:1329 - "GET /api/v1/auth/me HTTP/1.1" 200 OK
|
| 42 |
+
INFO: 2025-11-24T07:48:19 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 43 |
+
INFO: 2025-11-24T07:48:19 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 44 |
+
INFO: 2025-11-24T07:48:19 - app.services.dashboard_service: Dashboard cache MISS for project 0ade6bd1-e492-4e25-b681-59f42058d29a, user c5cf92be-4172-4fe2-af5c-f05d83b3a938 - building fresh data
|
| 45 |
+
INFO: 2025-11-24T07:48:20 - app.services.dashboard_service: Built and cached dashboard for project 0ade6bd1-e492-4e25-b681-59f42058d29a
|
| 46 |
+
INFO: 10.16.30.104:1329 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/dashboard HTTP/1.1" 200 OK
|
| 47 |
+
INFO: 2025-11-24T07:48:20 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 48 |
+
INFO: 2025-11-24T07:48:20 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 49 |
+
INFO: 10.16.13.17:9777 - "GET /api/v1/auth/me/preferences/available-apps HTTP/1.1" 200 OK
|
| 50 |
+
INFO: 2025-11-24T07:48:20 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 51 |
+
INFO: 2025-11-24T07:48:20 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 52 |
+
INFO: 10.16.6.70:1872 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/activity-feed?limit=20 HTTP/1.1" 200 OK
|
| 53 |
+
INFO: 2025-11-24T07:48:20 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 54 |
+
INFO: 2025-11-24T07:48:20 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 55 |
+
INFO: 10.16.30.104:9961 - "GET /api/v1/auth/me/preferences HTTP/1.1" 200 OK
|
| 56 |
+
INFO: 2025-11-24T07:48:20 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 57 |
+
INFO: 2025-11-24T07:48:20 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 58 |
+
INFO: 10.16.6.70:1872 - "GET /api/v1/sales-orders/stats?project_id=0ade6bd1-e492-4e25-b681-59f42058d29a HTTP/1.1" 200 OK
|
| 59 |
+
INFO: 2025-11-24T07:48:26 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 60 |
+
INFO: 2025-11-24T07:48:26 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 61 |
+
INFO: 10.16.30.104:32841 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/team/invitations HTTP/1.1" 200 OK
|
| 62 |
+
INFO: 2025-11-24T07:48:26 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 63 |
+
INFO: 2025-11-24T07:48:26 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 64 |
+
INFO: 10.16.13.17:50885 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/team/invitations/stats HTTP/1.1" 200 OK
|
| 65 |
+
INFO: 2025-11-24T07:48:35 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 66 |
+
INFO: 2025-11-24T07:48:35 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 67 |
+
INFO: 10.16.6.70:1094 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/regions HTTP/1.1" 200 OK
|
| 68 |
+
INFO: 2025-11-24T07:48:35 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 69 |
+
INFO: 2025-11-24T07:48:35 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 70 |
+
INFO: 10.16.13.17:59195 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/subcontractors HTTP/1.1" 200 OK
|
| 71 |
+
INFO: 2025-11-24T07:48:36 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 72 |
+
INFO: 2025-11-24T07:48:36 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 73 |
+
INFO: 10.16.6.70:15230 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/project-roles HTTP/1.1" 200 OK
|
| 74 |
+
INFO: 2025-11-24T07:52:14 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 75 |
+
INFO: 2025-11-24T07:52:14 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 76 |
+
INFO: 10.16.30.104:13386 - "GET /api/v1/auth/me/preferences/available-apps HTTP/1.1" 200 OK
|
| 77 |
+
INFO: 10.16.30.104:51494 - "GET /health HTTP/1.1" 200 OK
|
| 78 |
+
INFO: 2025-11-24T07:52:14 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 79 |
+
INFO: 2025-11-24T07:52:14 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 80 |
+
INFO: 10.16.13.17:8320 - "GET /api/v1/auth/me/preferences HTTP/1.1" 200 OK
|
| 81 |
+
INFO: 10.16.6.70:59633 - "GET /health HTTP/1.1" 200 OK
|
| 82 |
+
INFO: 10.16.6.70:31257 - "GET /health HTTP/1.1" 200 OK
|
| 83 |
+
INFO: 10.16.30.104:51717 - "GET /health HTTP/1.1" 200 OK
|
| 84 |
+
INFO: 10.16.13.17:5061 - "GET /health HTTP/1.1" 200 OK
|
| 85 |
+
INFO: 2025-11-24T07:53:50 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 86 |
+
INFO: 2025-11-24T07:53:50 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 87 |
+
INFO: 10.16.30.104:31014 - "GET /api/v1/auth/me HTTP/1.1" 200 OK
|
| 88 |
+
INFO: 2025-11-24T07:53:51 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 89 |
+
INFO: 2025-11-24T07:53:51 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 90 |
+
INFO: 10.16.30.104:31014 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/team/invitations/stats HTTP/1.1" 200 OK
|
| 91 |
+
INFO: 2025-11-24T07:53:51 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 92 |
+
INFO: 2025-11-24T07:53:51 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 93 |
+
INFO: 10.16.30.104:5373 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/team/invitations HTTP/1.1" 200 OK
|
| 94 |
+
INFO: 2025-11-24T07:53:51 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 95 |
+
INFO: 2025-11-24T07:53:51 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 96 |
+
INFO: 10.16.13.17:5061 - "GET /api/v1/auth/me/preferences HTTP/1.1" 200 OK
|
| 97 |
+
INFO: 2025-11-24T07:53:51 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 98 |
+
INFO: 2025-11-24T07:53:51 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 99 |
+
INFO: 10.16.13.17:12585 - "GET /api/v1/auth/me/preferences/available-apps HTTP/1.1" 200 OK
|
| 100 |
+
INFO: 2025-11-24T07:53:53 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 101 |
+
INFO: 2025-11-24T07:53:53 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 102 |
+
INFO: 10.16.30.104:31014 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/project-roles HTTP/1.1" 200 OK
|
| 103 |
+
INFO: 2025-11-24T07:53:53 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 104 |
+
INFO: 2025-11-24T07:53:53 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 105 |
+
INFO: 10.16.30.104:55818 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/regions HTTP/1.1" 200 OK
|
| 106 |
+
INFO: 2025-11-24T07:53:53 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 107 |
+
INFO: 2025-11-24T07:53:53 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 108 |
+
INFO: 10.16.30.104:5373 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/subcontractors HTTP/1.1" 200 OK
|
| 109 |
+
INFO: 10.16.30.104:63013 - "GET /health HTTP/1.1" 200 OK
|
| 110 |
+
INFO: 10.16.13.17:10922 - "GET /health HTTP/1.1" 200 OK
|
| 111 |
+
INFO: 10.16.30.104:53569 - "GET /health HTTP/1.1" 200 OK
|
| 112 |
+
INFO: 10.16.30.104:38918 - "GET /health HTTP/1.1" 200 OK
|
| 113 |
+
INFO: 10.16.30.104:45795 - "GET /health HTTP/1.1" 200 OK
|
| 114 |
+
INFO: 2025-11-24T07:57:43 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 115 |
+
INFO: 2025-11-24T07:57:43 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 116 |
+
INFO: 10.16.13.17:30909 - "GET /api/v1/auth/me HTTP/1.1" 200 OK
|
| 117 |
+
INFO: 10.16.30.104:16437 - "GET /health HTTP/1.1" 200 OK
|
| 118 |
+
INFO: 2025-11-24T07:57:44 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 119 |
+
INFO: 2025-11-24T07:57:44 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 120 |
+
INFO: 10.16.13.17:30909 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/team/invitations/stats HTTP/1.1" 200 OK
|
| 121 |
+
INFO: 2025-11-24T07:57:44 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 122 |
+
INFO: 2025-11-24T07:57:44 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 123 |
+
INFO: 10.16.30.104:16437 - "GET /api/v1/auth/me/preferences/available-apps HTTP/1.1" 200 OK
|
| 124 |
+
INFO: 2025-11-24T07:57:44 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 125 |
+
INFO: 2025-11-24T07:57:44 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 126 |
+
INFO: 10.16.6.70:2031 - "GET /api/v1/auth/me/preferences HTTP/1.1" 200 OK
|
| 127 |
+
INFO: 2025-11-24T07:57:44 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 128 |
+
INFO: 2025-11-24T07:57:44 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 129 |
+
INFO: 10.16.30.104:14984 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/team/invitations HTTP/1.1" 200 OK
|
| 130 |
+
INFO: 2025-11-24T07:57:45 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 131 |
+
INFO: 2025-11-24T07:57:45 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 132 |
+
INFO: 10.16.30.104:14984 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/project-roles HTTP/1.1" 200 OK
|
| 133 |
+
INFO: 2025-11-24T07:57:45 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 134 |
+
INFO: 2025-11-24T07:57:45 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 135 |
+
INFO: 10.16.30.104:20006 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/subcontractors HTTP/1.1" 200 OK
|
| 136 |
+
INFO: 2025-11-24T07:57:45 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 137 |
+
INFO: 2025-11-24T07:57:45 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 138 |
+
INFO: 10.16.13.17:30909 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/regions HTTP/1.1" 200 OK
|
| 139 |
+
INFO: 10.16.30.104:19914 - "GET /health HTTP/1.1" 200 OK
|
| 140 |
+
INFO: 10.16.30.104:13166 - "GET /health HTTP/1.1" 200 OK
|
| 141 |
+
INFO: 10.16.30.104:17708 - "GET /health HTTP/1.1" 200 OK
|
| 142 |
+
INFO: 10.16.6.70:30878 - "GET /health HTTP/1.1" 200 OK
|
| 143 |
+
INFO: 10.16.30.104:40752 - "GET /health HTTP/1.1" 200 OK
|
| 144 |
+
INFO: 10.16.30.104:47424 - "GET /health HTTP/1.1" 200 OK
|
| 145 |
+
INFO: 10.16.6.70:41213 - "GET /health HTTP/1.1" 200 OK
|
| 146 |
+
INFO: 2025-11-24T08:02:56 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 147 |
+
INFO: 2025-11-24T08:02:56 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 148 |
+
INFO: 10.16.30.104:46731 - "GET /api/v1/auth/me/preferences HTTP/1.1" 200 OK
|
| 149 |
+
INFO: 2025-11-24T08:02:56 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 150 |
+
INFO: 2025-11-24T08:02:56 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 151 |
+
INFO: 10.16.30.104:24577 - "GET /api/v1/auth/me/preferences/available-apps HTTP/1.1" 200 OK
|
| 152 |
+
INFO: 10.16.6.70:29407 - "GET /health HTTP/1.1" 200 OK
|
| 153 |
+
INFO: 10.16.30.104:1507 - "GET /health HTTP/1.1" 200 OK
|
| 154 |
+
INFO: 10.16.30.104:62816 - "GET /health HTTP/1.1" 200 OK
|
| 155 |
+
INFO: 2025-11-24T08:04:16 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 156 |
+
INFO: 2025-11-24T08:04:16 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 157 |
+
INFO: 10.16.6.70:62508 - "GET /api/v1/auth/me HTTP/1.1" 200 OK
|
| 158 |
+
INFO: 2025-11-24T08:04:16 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 159 |
+
INFO: 2025-11-24T08:04:16 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 160 |
+
INFO: 10.16.6.70:62508 - "GET /api/v1/auth/me/preferences/available-apps HTTP/1.1" 200 OK
|
| 161 |
+
INFO: 2025-11-24T08:04:16 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 162 |
+
INFO: 2025-11-24T08:04:16 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 163 |
+
INFO: 10.16.30.104:63923 - "GET /api/v1/auth/me/preferences HTTP/1.1" 200 OK
|
| 164 |
+
INFO: 2025-11-24T08:04:17 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 165 |
+
INFO: 2025-11-24T08:04:17 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 166 |
+
INFO: 10.16.30.104:63923 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/team/invitations/stats HTTP/1.1" 200 OK
|
| 167 |
+
INFO: 2025-11-24T08:04:17 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 168 |
+
INFO: 2025-11-24T08:04:17 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 169 |
+
INFO: 10.16.6.70:38211 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/team/invitations HTTP/1.1" 200 OK
|
| 170 |
+
INFO: 2025-11-24T08:04:18 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 171 |
+
INFO: 2025-11-24T08:04:18 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 172 |
+
INFO: 10.16.30.104:63923 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/project-roles HTTP/1.1" 200 OK
|
| 173 |
+
INFO: 2025-11-24T08:04:18 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 174 |
+
INFO: 2025-11-24T08:04:18 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 175 |
+
INFO: 10.16.6.70:38211 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/regions HTTP/1.1" 200 OK
|
| 176 |
+
INFO: 2025-11-24T08:04:18 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 177 |
+
INFO: 2025-11-24T08:04:18 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 178 |
+
INFO: 10.16.6.70:62508 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/subcontractors HTTP/1.1" 200 OK
|
| 179 |
+
INFO: 10.16.30.104:64623 - "GET /health HTTP/1.1" 200 OK
|
| 180 |
+
INFO: 10.16.6.70:1177 - "GET /health HTTP/1.1" 200 OK
|
| 181 |
+
INFO: 10.16.6.70:62671 - "GET /health HTTP/1.1" 200 OK
|
| 182 |
+
INFO: 10.16.6.70:21790 - "GET /health HTTP/1.1" 200 OK
|
| 183 |
+
INFO: 10.16.6.70:29800 - "GET /health HTTP/1.1" 200 OK
|
| 184 |
+
INFO: 10.16.30.104:7240 - "GET /health HTTP/1.1" 200 OK
|
| 185 |
+
INFO: 10.16.6.70:58287 - "GET /health HTTP/1.1" 200 OK
|
| 186 |
+
INFO: 2025-11-24T08:08:11 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 187 |
+
INFO: 2025-11-24T08:08:11 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 188 |
+
INFO: 10.16.6.70:5418 - "GET /api/v1/auth/me HTTP/1.1" 200 OK
|
| 189 |
+
INFO: 2025-11-24T08:08:15 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 190 |
+
INFO: 2025-11-24T08:08:15 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 191 |
+
INFO: 10.16.6.70:13336 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/subcontractors HTTP/1.1" 200 OK
|
| 192 |
+
INFO: 2025-11-24T08:08:15 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 193 |
+
INFO: 2025-11-24T08:08:15 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 194 |
+
INFO: 10.16.30.104:44437 - "GET /api/v1/auth/me/preferences HTTP/1.1" 200 OK
|
| 195 |
+
INFO: 2025-11-24T08:08:15 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 196 |
+
INFO: 2025-11-24T08:08:15 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 197 |
+
INFO: 10.16.6.70:38435 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/team/invitations HTTP/1.1" 200 OK
|
| 198 |
+
INFO: 2025-11-24T08:08:15 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 199 |
+
INFO: 2025-11-24T08:08:15 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 200 |
+
INFO: 10.16.6.70:3469 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/project-roles HTTP/1.1" 200 OK
|
| 201 |
+
INFO: 2025-11-24T08:08:15 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 202 |
+
INFO: 2025-11-24T08:08:15 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 203 |
+
INFO: 10.16.6.70:51274 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/regions HTTP/1.1" 200 OK
|
| 204 |
+
INFO: 2025-11-24T08:08:16 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 205 |
+
INFO: 2025-11-24T08:08:16 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 206 |
+
INFO: 10.16.6.70:26290 - "GET /api/v1/auth/me/preferences/available-apps HTTP/1.1" 200 OK
|
| 207 |
+
INFO: 2025-11-24T08:08:16 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 208 |
+
INFO: 2025-11-24T08:08:16 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 209 |
+
INFO: 10.16.6.70:60924 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/team/invitations/stats HTTP/1.1" 200 OK
|
| 210 |
+
INFO: 10.16.6.70:60924 - "GET /health HTTP/1.1" 200 OK
|
| 211 |
+
INFO: 2025-11-24T08:08:37 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 212 |
+
INFO: 2025-11-24T08:08:37 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 213 |
+
INFO: 10.16.30.104:34650 - "GET /api/v1/auth/me HTTP/1.1" 200 OK
|
| 214 |
+
INFO: 10.16.6.70:22994 - "GET /health HTTP/1.1" 200 OK
|
| 215 |
+
INFO: 2025-11-24T08:08:38 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 216 |
+
INFO: 2025-11-24T08:08:38 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 217 |
+
INFO: 10.16.6.70:22994 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/subcontractors HTTP/1.1" 200 OK
|
| 218 |
+
INFO: 2025-11-24T08:08:38 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 219 |
+
INFO: 2025-11-24T08:08:38 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 220 |
+
INFO: 10.16.30.104:34650 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/project-roles HTTP/1.1" 200 OK
|
| 221 |
+
INFO: 2025-11-24T08:08:38 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 222 |
+
INFO: 2025-11-24T08:08:38 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 223 |
+
INFO: 10.16.6.70:61269 - "GET /api/v1/auth/me/preferences/available-apps HTTP/1.1" 200 OK
|
| 224 |
+
INFO: 2025-11-24T08:08:38 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 225 |
+
INFO: 2025-11-24T08:08:38 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 226 |
+
INFO: 10.16.30.104:61933 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/regions HTTP/1.1" 200 OK
|
| 227 |
+
INFO: 2025-11-24T08:08:38 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 228 |
+
INFO: 2025-11-24T08:08:38 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 229 |
+
INFO: 10.16.30.104:53121 - "GET /api/v1/auth/me/preferences HTTP/1.1" 200 OK
|
| 230 |
+
INFO: 2025-11-24T08:08:39 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 231 |
+
INFO: 2025-11-24T08:08:39 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 232 |
+
INFO: 10.16.30.104:53121 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/team HTTP/1.1" 200 OK
|
| 233 |
+
INFO: 2025-11-24T08:08:39 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 234 |
+
INFO: 2025-11-24T08:08:39 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 235 |
+
INFO: 10.16.6.70:22994 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a HTTP/1.1" 200 OK
|
| 236 |
+
INFO: 2025-11-24T08:08:49 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 237 |
+
INFO: 2025-11-24T08:08:49 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 238 |
+
INFO: 10.16.30.104:7314 - "GET /api/v1/users?skip=0&limit=100 HTTP/1.1" 200 OK
|
| 239 |
+
INFO: 10.16.6.70:39845 - "GET /health HTTP/1.1" 200 OK
|
| 240 |
+
INFO: 10.16.6.70:33139 - "GET /health HTTP/1.1" 200 OK
|
| 241 |
+
INFO: 10.16.30.104:5538 - "GET /health HTTP/1.1" 200 OK
|
| 242 |
+
INFO: 10.16.30.104:30772 - "GET /health HTTP/1.1" 200 OK
|
| 243 |
+
INFO: 10.16.6.70:51707 - "GET /health HTTP/1.1" 200 OK
|
| 244 |
+
INFO: 10.16.6.70:27658 - "GET /health HTTP/1.1" 200 OK
|
| 245 |
+
INFO: 10.16.30.104:16072 - "GET /health HTTP/1.1" 200 OK
|
| 246 |
+
INFO: 10.16.6.70:18413 - "GET /health HTTP/1.1" 200 OK
|
| 247 |
+
INFO: 10.16.30.104:58137 - "GET /health HTTP/1.1" 200 OK
|
| 248 |
+
INFO: 10.16.30.104:6174 - "GET /health HTTP/1.1" 200 OK
|
| 249 |
+
INFO: 10.16.30.104:63841 - "GET /health HTTP/1.1" 200 OK
|
| 250 |
+
INFO: 10.16.6.70:14136 - "GET /health HTTP/1.1" 200 OK
|
| 251 |
+
INFO: 10.16.30.104:3265 - "GET /health HTTP/1.1" 200 OK
|
| 252 |
+
INFO: 10.16.30.104:32972 - "GET /health HTTP/1.1" 200 OK
|
| 253 |
+
INFO: 2025-11-24T08:18:49 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 254 |
+
INFO: 2025-11-24T08:18:49 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 255 |
+
INFO: 10.16.6.70:35356 - "GET /api/v1/auth/me HTTP/1.1" 200 OK
|
| 256 |
+
INFO: 2025-11-24T08:18:50 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 257 |
+
INFO: 2025-11-24T08:18:50 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 258 |
+
INFO: 10.16.6.70:35356 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/regions HTTP/1.1" 200 OK
|
| 259 |
+
INFO: 2025-11-24T08:18:50 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 260 |
+
INFO: 2025-11-24T08:18:50 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 261 |
+
INFO: 10.16.30.104:32972 - "GET /api/v1/auth/me/preferences/available-apps HTTP/1.1" 200 OK
|
| 262 |
+
INFO: 2025-11-24T08:18:50 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 263 |
+
INFO: 2025-11-24T08:18:50 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 264 |
+
INFO: 10.16.30.104:56860 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/project-roles HTTP/1.1" 200 OK
|
| 265 |
+
INFO: 2025-11-24T08:18:50 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 266 |
+
INFO: 2025-11-24T08:18:50 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 267 |
+
INFO: 10.16.6.70:54694 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/team/invitations HTTP/1.1" 200 OK
|
| 268 |
+
INFO: 2025-11-24T08:18:50 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 269 |
+
INFO: 2025-11-24T08:18:50 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 270 |
+
INFO: 10.16.6.70:37836 - "GET /api/v1/users?skip=0&limit=100 HTTP/1.1" 200 OK
|
| 271 |
+
INFO: 2025-11-24T08:18:50 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 272 |
+
INFO: 2025-11-24T08:18:50 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 273 |
+
INFO: 10.16.30.104:23158 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/team HTTP/1.1" 200 OK
|
| 274 |
+
INFO: 2025-11-24T08:18:50 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 275 |
+
INFO: 2025-11-24T08:18:50 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 276 |
+
INFO: 10.16.30.104:20280 - "GET /api/v1/auth/me/preferences HTTP/1.1" 200 OK
|
| 277 |
+
INFO: 2025-11-24T08:18:50 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 278 |
+
INFO: 2025-11-24T08:18:50 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 279 |
+
INFO: 10.16.30.104:54519 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/subcontractors HTTP/1.1" 200 OK
|
| 280 |
+
INFO: 2025-11-24T08:19:10 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 281 |
+
INFO: 2025-11-24T08:19:10 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 282 |
+
INFO: 10.16.30.104:16164 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/team/invitations/stats HTTP/1.1" 200 OK
|
| 283 |
+
INFO: 10.16.30.104:36031 - "GET /health HTTP/1.1" 200 OK
|
| 284 |
+
INFO: 10.16.30.104:22387 - "GET /health HTTP/1.1" 200 OK
|
| 285 |
+
INFO: 10.16.30.104:3146 - "GET /health HTTP/1.1" 200 OK
|
| 286 |
+
INFO: 10.16.10.8:31167 - "GET /health HTTP/1.1" 200 OK
|
| 287 |
+
INFO: 10.16.30.104:65489 - "GET /health HTTP/1.1" 200 OK
|
| 288 |
+
INFO: 10.16.8.187:10974 - "GET /health HTTP/1.1" 200 OK
|
| 289 |
+
INFO: 10.16.6.70:26881 - "GET /health HTTP/1.1" 200 OK
|
| 290 |
+
INFO: 2025-11-24T08:22:32 - app.core.supabase_auth: Session refreshed successfully
|
| 291 |
+
INFO: 2025-11-24T08:22:32 - app.api.v1.auth: ✅ Token refreshed successfully for: nadina73@nembors.com
|
| 292 |
+
INFO: 10.16.18.114:18497 - "POST /api/v1/auth/refresh-token HTTP/1.1" 200 OK
|
| 293 |
+
INFO: 2025-11-24T08:22:32 - app.core.supabase_auth: Session refreshed successfully
|
| 294 |
+
INFO: 2025-11-24T08:22:32 - app.api.v1.auth: ✅ Token refreshed successfully for: nadina73@nembors.com
|
| 295 |
+
INFO: 10.16.18.114:53425 - "POST /api/v1/auth/refresh-token HTTP/1.1" 200 OK
|
| 296 |
+
INFO: 10.16.30.104:65318 - "GET /health HTTP/1.1" 200 OK
|
| 297 |
+
INFO: 10.16.10.8:3583 - "GET /health HTTP/1.1" 200 OK
|
| 298 |
+
INFO: 10.16.18.114:4173 - "GET /health HTTP/1.1" 200 OK
|
| 299 |
+
INFO: 10.16.8.187:39093 - "GET /health HTTP/1.1" 200 OK
|
| 300 |
+
INFO: 10.16.10.8:24637 - "GET /health HTTP/1.1" 200 OK
|
| 301 |
+
INFO: 10.16.18.114:32953 - "GET /health HTTP/1.1" 200 OK
|
| 302 |
+
INFO: 2025-11-24T08:23:39 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 303 |
+
INFO: 2025-11-24T08:23:39 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 304 |
+
INFO: 10.16.10.8:49423 - "GET /api/v1/auth/me HTTP/1.1" 200 OK
|
| 305 |
+
INFO: 2025-11-24T08:23:40 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 306 |
+
INFO: 2025-11-24T08:23:40 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 307 |
+
INFO: 10.16.10.8:49423 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/project-roles HTTP/1.1" 200 OK
|
| 308 |
+
INFO: 2025-11-24T08:23:40 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 309 |
+
INFO: 2025-11-24T08:23:40 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 310 |
+
INFO: 10.16.18.114:32953 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/regions HTTP/1.1" 200 OK
|
| 311 |
+
INFO: 2025-11-24T08:23:40 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 312 |
+
INFO: 2025-11-24T08:23:40 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 313 |
+
INFO: 10.16.8.187:51459 - "GET /api/v1/auth/me/preferences HTTP/1.1" 200 OK
|
| 314 |
+
INFO: 2025-11-24T08:23:40 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 315 |
+
INFO: 2025-11-24T08:23:40 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 316 |
+
INFO: 10.16.10.8:61685 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/team HTTP/1.1" 200 OK
|
| 317 |
+
INFO: 2025-11-24T08:23:40 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 318 |
+
INFO: 2025-11-24T08:23:40 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 319 |
+
INFO: 10.16.18.114:59853 - "GET /api/v1/auth/me/preferences/available-apps HTTP/1.1" 200 OK
|
| 320 |
+
INFO: 2025-11-24T08:23:40 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 321 |
+
INFO: 2025-11-24T08:23:40 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 322 |
+
INFO: 10.16.33.56:19068 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/subcontractors HTTP/1.1" 200 OK
|
| 323 |
+
INFO: 2025-11-24T08:23:40 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 324 |
+
INFO: 2025-11-24T08:23:40 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 325 |
+
INFO: 10.16.33.56:64626 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a HTTP/1.1" 200 OK
|
| 326 |
+
INFO: 2025-11-24T08:23:43 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 327 |
+
INFO: 2025-11-24T08:23:43 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 328 |
+
INFO: 10.16.10.8:9298 - "GET /api/v1/users?skip=0&limit=100 HTTP/1.1" 200 OK
|
| 329 |
+
INFO: 10.16.18.114:28151 - "GET /health HTTP/1.1" 200 OK
|
| 330 |
+
INFO: 10.16.8.187:60764 - "GET /health HTTP/1.1" 200 OK
|
| 331 |
+
INFO: 10.16.8.187:41221 - "GET /health HTTP/1.1" 200 OK
|
| 332 |
+
INFO: 10.16.33.56:20500 - "GET /health HTTP/1.1" 200 OK
|
| 333 |
+
INFO: 10.16.18.114:56632 - "GET /health HTTP/1.1" 200 OK
|
| 334 |
+
INFO: 10.16.33.56:41646 - "GET /health HTTP/1.1" 200 OK
|
| 335 |
+
INFO: 10.16.10.8:11531 - "GET /health HTTP/1.1" 200 OK
|
| 336 |
+
INFO: 10.16.18.114:45310 - "GET /health HTTP/1.1" 200 OK
|
| 337 |
+
INFO: 10.16.33.56:38650 - "GET /health HTTP/1.1" 200 OK
|
| 338 |
+
INFO: 10.16.33.56:50075 - "GET /health HTTP/1.1" 200 OK
|
| 339 |
+
INFO: 10.16.10.8:57114 - "GET /health HTTP/1.1" 200 OK
|
| 340 |
+
INFO: 10.16.18.114:13053 - "GET /health HTTP/1.1" 200 OK
|
| 341 |
+
INFO: 10.16.33.56:57252 - "GET /health HTTP/1.1" 200 OK
|
| 342 |
+
INFO: 10.16.10.8:52580 - "GET /health HTTP/1.1" 200 OK
|
| 343 |
+
INFO: 10.16.18.114:52729 - "GET /health HTTP/1.1" 200 OK
|
| 344 |
+
INFO: 10.16.10.8:32916 - "GET /health HTTP/1.1" 200 OK
|
| 345 |
+
INFO: 10.16.33.56:12620 - "GET /health HTTP/1.1" 200 OK
|
| 346 |
+
INFO: 10.16.33.56:11663 - "GET /health HTTP/1.1" 200 OK
|
| 347 |
+
INFO: 10.16.10.8:17286 - "GET /health HTTP/1.1" 200 OK
|
| 348 |
+
INFO: 10.16.10.8:10577 - "GET /health HTTP/1.1" 200 OK
|
| 349 |
+
INFO: 10.16.18.114:3379 - "GET /health HTTP/1.1" 200 OK
|
| 350 |
+
INFO: 2025-11-24T08:33:34 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 351 |
+
INFO: 2025-11-24T08:33:34 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 352 |
+
INFO: 10.16.33.56:37147 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/regions HTTP/1.1" 200 OK
|
| 353 |
+
INFO: 2025-11-24T08:33:34 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 354 |
+
INFO: 2025-11-24T08:33:34 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 355 |
+
INFO: 10.16.10.8:12659 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/project-roles HTTP/1.1" 200 OK
|
| 356 |
+
INFO: 2025-11-24T08:33:35 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 357 |
+
INFO: 2025-11-24T08:33:35 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 358 |
+
INFO: 10.16.18.114:47405 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/subcontractors HTTP/1.1" 200 OK
|
| 359 |
+
INFO: 10.16.18.114:52004 - "GET /health HTTP/1.1" 200 OK
|
| 360 |
+
INFO: 10.16.18.114:48365 - "GET /health HTTP/1.1" 200 OK
|
| 361 |
+
INFO: 10.16.33.56:23812 - "GET /health HTTP/1.1" 200 OK
|
| 362 |
+
INFO: 10.16.44.194:51733 - "GET /health HTTP/1.1" 200 OK
|
| 363 |
+
INFO: 10.16.10.8:21071 - "GET /health HTTP/1.1" 200 OK
|
| 364 |
+
INFO: 10.16.44.194:23601 - "GET /health HTTP/1.1" 200 OK
|
| 365 |
+
INFO: 10.16.44.194:56043 - "GET /health HTTP/1.1" 200 OK
|
| 366 |
+
INFO: 10.16.18.114:3269 - "GET /health HTTP/1.1" 200 OK
|
| 367 |
+
INFO: 10.16.18.114:41671 - "GET /health HTTP/1.1" 200 OK
|
| 368 |
+
INFO: 10.16.33.56:51738 - "GET /health HTTP/1.1" 200 OK
|
| 369 |
+
INFO: 10.16.10.8:19386 - "GET /health HTTP/1.1" 200 OK
|
| 370 |
+
INFO: 10.16.18.114:60492 - "GET /health HTTP/1.1" 200 OK
|
| 371 |
+
INFO: 10.16.18.114:26405 - "GET /health HTTP/1.1" 200 OK
|
| 372 |
+
INFO: 10.16.44.194:23929 - "GET /health HTTP/1.1" 200 OK
|
| 373 |
+
INFO: 10.16.10.8:43706 - "GET /health HTTP/1.1" 200 OK
|
| 374 |
+
INFO: 10.16.10.8:52723 - "GET /health HTTP/1.1" 200 OK
|
| 375 |
+
INFO: 10.16.18.114:37308 - "GET /health HTTP/1.1" 200 OK
|
| 376 |
+
INFO: 10.16.18.114:26075 - "GET /health HTTP/1.1" 200 OK
|
| 377 |
+
INFO: 10.16.33.56:25074 - "GET /health HTTP/1.1" 200 OK
|
| 378 |
+
INFO: 10.16.10.8:24500 - "GET /health HTTP/1.1" 200 OK
|
| 379 |
+
INFO: 10.16.10.8:6859 - "GET /health HTTP/1.1" 200 OK
|
| 380 |
+
INFO: 10.16.33.56:31106 - "GET /health HTTP/1.1" 200 OK
|
| 381 |
+
INFO: 10.16.10.8:26346 - "GET /health HTTP/1.1" 200 OK
|
| 382 |
+
INFO: 10.16.10.8:33791 - "GET /health HTTP/1.1" 200 OK
|
| 383 |
+
INFO: 10.16.33.56:18722 - "GET /health HTTP/1.1" 200 OK
|
| 384 |
+
INFO: 10.16.10.8:64063 - "GET /health HTTP/1.1" 200 OK
|
| 385 |
+
INFO: 2025-11-24T08:43:11 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 386 |
+
INFO: 2025-11-24T08:43:11 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 387 |
+
INFO: 10.16.18.114:41139 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/project-roles HTTP/1.1" 200 OK
|
| 388 |
+
INFO: 2025-11-24T08:43:11 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 389 |
+
INFO: 2025-11-24T08:43:11 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 390 |
+
INFO: 10.16.18.114:3140 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/subcontractors HTTP/1.1" 200 OK
|
| 391 |
+
INFO: 2025-11-24T08:43:11 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 392 |
+
INFO: 2025-11-24T08:43:11 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 393 |
+
INFO: 10.16.33.56:10601 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/regions HTTP/1.1" 200 OK
|
| 394 |
+
INFO: 10.16.18.114:33993 - "GET /health HTTP/1.1" 200 OK
|
| 395 |
+
INFO: 10.16.10.8:40110 - "GET /health HTTP/1.1" 200 OK
|
| 396 |
+
INFO: 10.16.33.56:11647 - "GET /health HTTP/1.1" 200 OK
|
| 397 |
+
INFO: 10.16.10.8:23786 - "GET /health HTTP/1.1" 200 OK
|
| 398 |
+
INFO: 10.16.10.8:23786 - "GET /health HTTP/1.1" 200 OK
|
| 399 |
+
INFO: 10.16.10.8:23786 - "GET /health HTTP/1.1" 200 OK
|
| 400 |
+
INFO: 10.16.10.8:8477 - "GET /health HTTP/1.1" 200 OK
|
| 401 |
+
INFO: 10.16.10.8:23869 - "GET /health HTTP/1.1" 200 OK
|
| 402 |
+
INFO: 10.16.18.114:35662 - "GET /health HTTP/1.1" 200 OK
|
| 403 |
+
INFO: 10.16.33.56:12180 - "GET /health HTTP/1.1" 200 OK
|
| 404 |
+
INFO: 10.16.18.114:62966 - "GET /health HTTP/1.1" 200 OK
|
| 405 |
+
INFO: 10.16.33.56:49826 - "GET /health HTTP/1.1" 200 OK
|
| 406 |
+
INFO: 2025-11-24T08:47:38 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 407 |
+
INFO: 2025-11-24T08:47:38 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 408 |
+
INFO: 10.16.44.194:40707 - "GET /api/v1/users?skip=0&limit=100 HTTP/1.1" 200 OK
|
| 409 |
+
INFO: 2025-11-24T08:47:38 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 410 |
+
INFO: 2025-11-24T08:47:38 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 411 |
+
INFO: 10.16.44.194:54771 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/team HTTP/1.1" 200 OK
|
| 412 |
+
INFO: 10.16.10.8:13213 - "GET /health HTTP/1.1" 200 OK
|
| 413 |
+
INFO: 10.16.10.8:41046 - "GET /health HTTP/1.1" 200 OK
|
| 414 |
+
INFO: 10.16.44.194:39809 - "GET /health HTTP/1.1" 200 OK
|
| 415 |
+
INFO: 10.16.10.8:15886 - "GET /health HTTP/1.1" 200 OK
|
| 416 |
+
INFO: 10.16.18.114:61292 - "GET /health HTTP/1.1" 200 OK
|
| 417 |
+
INFO: 2025-11-24T08:49:37 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 418 |
+
INFO: 2025-11-24T08:49:37 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 419 |
+
INFO: 10.16.33.56:52619 - "POST /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/team/invite HTTP/1.1" 500 Internal Server Error
|
| 420 |
+
ERROR: Exception in ASGI application
|
| 421 |
+
Traceback (most recent call last):
|
| 422 |
+
File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 426, in run_asgi
|
| 423 |
+
result = await app( # type: ignore[func-returns-value]
|
| 424 |
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| 425 |
+
File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 84, in __call__
|
| 426 |
+
return await self.app(scope, receive, send)
|
| 427 |
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| 428 |
+
File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1106, in __call__
|
| 429 |
+
await super().__call__(scope, receive, send)
|
| 430 |
+
File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 122, in __call__
|
| 431 |
+
await self.middleware_stack(scope, receive, send)
|
| 432 |
+
File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 184, in __call__
|
| 433 |
+
raise exc
|
| 434 |
+
File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 162, in __call__
|
| 435 |
+
await self.app(scope, receive, _send)
|
| 436 |
+
File "/usr/local/lib/python3.11/site-packages/starlette/middleware/cors.py", line 91, in __call__
|
| 437 |
+
await self.simple_response(scope, receive, send, request_headers=headers)
|
| 438 |
+
File "/usr/local/lib/python3.11/site-packages/starlette/middleware/cors.py", line 146, in simple_response
|
| 439 |
+
await self.app(scope, receive, send)
|
| 440 |
+
File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 79, in __call__
|
| 441 |
+
raise exc
|
| 442 |
+
File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 68, in __call__
|
| 443 |
+
await self.app(scope, receive, sender)
|
| 444 |
+
File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 20, in __call__
|
| 445 |
+
raise e
|
| 446 |
+
File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 17, in __call__
|
| 447 |
+
await self.app(scope, receive, send)
|
| 448 |
+
File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 718, in __call__
|
| 449 |
+
await route.handle(scope, receive, send)
|
| 450 |
+
File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 276, in handle
|
| 451 |
+
await self.app(scope, receive, send)
|
| 452 |
+
File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 66, in app
|
| 453 |
+
response = await func(request)
|
| 454 |
+
^^^^^^^^^^^^^^^^^^^
|
| 455 |
+
File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 274, in app
|
| 456 |
+
raw_response = await run_endpoint_function(
|
| 457 |
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| 458 |
+
File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 191, in run_endpoint_function
|
| 459 |
+
return await dependant.call(**values)
|
| 460 |
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| 461 |
+
File "/app/src/app/api/v1/projects.py", line 1135, in invite_to_project_team
|
| 462 |
+
full_invitation = InvitationCreate(
|
| 463 |
+
^^^^^^^^^^^^^^^^^
|
| 464 |
+
File "/usr/local/lib/python3.11/site-packages/pydantic/main.py", line 164, in __init__
|
| 465 |
+
__pydantic_self__.__pydantic_validator__.validate_python(data, self_instance=__pydantic_self__)
|
| 466 |
+
pydantic_core._pydantic_core.ValidationError: 1 validation error for InvitationCreate
|
| 467 |
+
contractor_id
|
| 468 |
+
Value error, User cannot be linked to both client and contractor [type=value_error, input_value=UUID('1af9fb24-e5bb-40ac-a748-0997580b4c32'), input_type=UUID]
|
| 469 |
+
For further information visit https://errors.pydantic.dev/2.5/v/value_error
|
| 470 |
+
INFO: 10.16.44.194:48601 - "GET /health HTTP/1.1" 200 OK
|
| 471 |
+
INFO: 10.16.44.194:5271 - "GET /health HTTP/1.1" 200 OK
|
| 472 |
+
INFO: 10.16.33.56:42535 - "GET /health HTTP/1.1" 200 OK
|
| 473 |
+
INFO: 10.16.33.56:61475 - "GET /health HTTP/1.1" 200 OK
|
| 474 |
+
INFO: 10.16.10.8:2207 - "GET /health HTTP/1.1" 200 OK
|
| 475 |
+
INFO: 10.16.33.56:12960 - "GET /health HTTP/1.1" 200 OK
|
| 476 |
+
INFO: 10.16.18.114:50729 - "GET /health HTTP/1.1" 200 OK
|
| 477 |
+
INFO: 10.16.44.194:10144 - "GET /health HTTP/1.1" 200 OK
|
| 478 |
+
INFO: 10.16.44.194:55362 - "GET /health HTTP/1.1" 200 OK
|
| 479 |
+
INFO: 10.16.10.8:17713 - "GET /health HTTP/1.1" 200 OK
|
| 480 |
+
INFO: 10.16.10.8:58500 - "GET /health HTTP/1.1" 200 OK
|
| 481 |
+
INFO: 10.16.44.194:5098 - "GET /health HTTP/1.1" 200 OK
|
| 482 |
+
INFO: 10.16.10.8:61548 - "GET /health HTTP/1.1" 200 OK
|
| 483 |
+
INFO: 10.16.33.56:55355 - "GET /health HTTP/1.1" 200 OK
|
| 484 |
+
INFO: 10.16.33.56:56050 - "GET /health HTTP/1.1" 200 OK
|
| 485 |
+
INFO: 10.16.10.8:24222 - "GET /health HTTP/1.1" 200 OK
|
| 486 |
+
INFO: 10.16.44.194:54370 - "GET /health HTTP/1.1" 200 OK
|
| 487 |
+
INFO: 10.16.18.114:20179 - "GET /health HTTP/1.1" 200 OK
|
| 488 |
+
INFO: 10.16.10.8:1874 - "GET /health HTTP/1.1" 200 OK
|
| 489 |
+
INFO: 10.16.18.114:36547 - "GET /health HTTP/1.1" 200 OK
|
| 490 |
+
INFO: 10.16.44.194:28259 - "GET /health HTTP/1.1" 200 OK
|
| 491 |
+
INFO: 2025-11-24T08:58:10 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 492 |
+
INFO: 2025-11-24T08:58:10 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 493 |
+
INFO: 10.16.44.194:28259 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/subcontractors HTTP/1.1" 200 OK
|
| 494 |
+
INFO: 2025-11-24T08:58:10 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 495 |
+
INFO: 2025-11-24T08:58:10 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 496 |
+
INFO: 10.16.33.56:29859 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/project-roles HTTP/1.1" 200 OK
|
| 497 |
+
INFO: 2025-11-24T08:58:10 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 498 |
+
INFO: 2025-11-24T08:58:10 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 499 |
+
INFO: 10.16.33.56:19602 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/regions HTTP/1.1" 200 OK
|
| 500 |
+
INFO: 10.16.18.114:49980 - "GET /health HTTP/1.1" 200 OK
|
| 501 |
+
INFO: 10.16.10.8:51585 - "GET /health HTTP/1.1" 200 OK
|
| 502 |
+
INFO: 10.16.44.194:40190 - "GET /health HTTP/1.1" 200 OK
|
| 503 |
+
INFO: 10.16.10.8:41078 - "GET /health HTTP/1.1" 200 OK
|
| 504 |
+
INFO: 2025-11-24T08:59:32 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 505 |
+
INFO: 2025-11-24T08:59:32 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 506 |
+
INFO: 10.16.18.114:13813 - "POST /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/team/invite HTTP/1.1" 500 Internal Server Error
|
| 507 |
+
ERROR: Exception in ASGI application
|
| 508 |
+
Traceback (most recent call last):
|
| 509 |
+
File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 426, in run_asgi
|
| 510 |
+
result = await app( # type: ignore[func-returns-value]
|
| 511 |
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| 512 |
+
File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 84, in __call__
|
| 513 |
+
return await self.app(scope, receive, send)
|
| 514 |
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| 515 |
+
File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1106, in __call__
|
| 516 |
+
await super().__call__(scope, receive, send)
|
| 517 |
+
File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 122, in __call__
|
| 518 |
+
await self.middleware_stack(scope, receive, send)
|
| 519 |
+
File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 184, in __call__
|
| 520 |
+
raise exc
|
| 521 |
+
File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 162, in __call__
|
| 522 |
+
await self.app(scope, receive, _send)
|
| 523 |
+
File "/usr/local/lib/python3.11/site-packages/starlette/middleware/cors.py", line 91, in __call__
|
| 524 |
+
await self.simple_response(scope, receive, send, request_headers=headers)
|
| 525 |
+
File "/usr/local/lib/python3.11/site-packages/starlette/middleware/cors.py", line 146, in simple_response
|
| 526 |
+
await self.app(scope, receive, send)
|
| 527 |
+
File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 79, in __call__
|
| 528 |
+
raise exc
|
| 529 |
+
File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 68, in __call__
|
| 530 |
+
await self.app(scope, receive, sender)
|
| 531 |
+
File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 20, in __call__
|
| 532 |
+
raise e
|
| 533 |
+
File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 17, in __call__
|
| 534 |
+
await self.app(scope, receive, send)
|
| 535 |
+
File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 718, in __call__
|
| 536 |
+
await route.handle(scope, receive, send)
|
| 537 |
+
File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 276, in handle
|
| 538 |
+
await self.app(scope, receive, send)
|
| 539 |
+
File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 66, in app
|
| 540 |
+
response = await func(request)
|
| 541 |
+
^^^^^^^^^^^^^^^^^^^
|
| 542 |
+
File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 274, in app
|
| 543 |
+
raw_response = await run_endpoint_function(
|
| 544 |
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| 545 |
+
File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 191, in run_endpoint_function
|
| 546 |
+
return await dependant.call(**values)
|
| 547 |
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| 548 |
+
File "/app/src/app/api/v1/projects.py", line 1135, in invite_to_project_team
|
| 549 |
+
full_invitation = InvitationCreate(
|
| 550 |
+
^^^^^^^^^^^^^^^^^
|
| 551 |
+
File "/usr/local/lib/python3.11/site-packages/pydantic/main.py", line 164, in __init__
|
| 552 |
+
__pydantic_self__.__pydantic_validator__.validate_python(data, self_instance=__pydantic_self__)
|
| 553 |
+
pydantic_core._pydantic_core.ValidationError: 1 validation error for InvitationCreate
|
| 554 |
+
contractor_id
|
| 555 |
+
Value error, User cannot be linked to both client and contractor [type=value_error, input_value=UUID('1af9fb24-e5bb-40ac-a748-0997580b4c32'), input_type=UUID]
|
| 556 |
+
For further information visit https://errors.pydantic.dev/2.5/v/value_error
|
| 557 |
+
INFO: 10.16.44.194:38273 - "GET /health HTTP/1.1" 200 OK
|
| 558 |
+
|
src/app/api/v1/projects.py
CHANGED
|
@@ -1131,14 +1131,36 @@ async def invite_to_project_team(
|
|
| 1131 |
detail=f"Project {project_id} not found"
|
| 1132 |
)
|
| 1133 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1134 |
# Build full invitation with project context
|
| 1135 |
full_invitation = InvitationCreate(
|
| 1136 |
email=invitation_data.email,
|
| 1137 |
phone=invitation_data.phone,
|
| 1138 |
invited_name=invitation_data.invited_name,
|
| 1139 |
invited_role=invitation_data.invited_role,
|
| 1140 |
-
client_id=
|
| 1141 |
-
contractor_id=
|
| 1142 |
invitation_method=invitation_data.invitation_method,
|
| 1143 |
project_id=project_id,
|
| 1144 |
project_role_id=invitation_data.project_role_id,
|
|
|
|
| 1131 |
detail=f"Project {project_id} not found"
|
| 1132 |
)
|
| 1133 |
|
| 1134 |
+
# Determine which organization the invited user should belong to based on role
|
| 1135 |
+
# Contractor roles: dispatcher, field_agent, driver
|
| 1136 |
+
# Client roles: client_admin
|
| 1137 |
+
# Can be either: sales_manager, sales_agent, project_manager
|
| 1138 |
+
contractor_roles = ['dispatcher', 'field_agent', 'driver']
|
| 1139 |
+
client_roles = ['client_admin']
|
| 1140 |
+
|
| 1141 |
+
# Determine org assignment based on invited role
|
| 1142 |
+
if invitation_data.invited_role in contractor_roles:
|
| 1143 |
+
# Contractor-specific roles always belong to project's contractor
|
| 1144 |
+
org_client_id = None
|
| 1145 |
+
org_contractor_id = project.contractor_id
|
| 1146 |
+
elif invitation_data.invited_role in client_roles:
|
| 1147 |
+
# Client-specific roles always belong to project's client
|
| 1148 |
+
org_client_id = project.client_id
|
| 1149 |
+
org_contractor_id = None
|
| 1150 |
+
else:
|
| 1151 |
+
# For ambiguous roles (sales_manager, sales_agent, project_manager),
|
| 1152 |
+
# default to contractor (most common case for project invitations)
|
| 1153 |
+
org_client_id = None
|
| 1154 |
+
org_contractor_id = project.contractor_id
|
| 1155 |
+
|
| 1156 |
# Build full invitation with project context
|
| 1157 |
full_invitation = InvitationCreate(
|
| 1158 |
email=invitation_data.email,
|
| 1159 |
phone=invitation_data.phone,
|
| 1160 |
invited_name=invitation_data.invited_name,
|
| 1161 |
invited_role=invitation_data.invited_role,
|
| 1162 |
+
client_id=org_client_id,
|
| 1163 |
+
contractor_id=org_contractor_id,
|
| 1164 |
invitation_method=invitation_data.invitation_method,
|
| 1165 |
project_id=project_id,
|
| 1166 |
project_role_id=invitation_data.project_role_id,
|