Commit Graph

195 Commits

Author SHA1 Message Date
Andrew Martinez efcb90c033 add all sdk version info to posture data 2021-07-09 15:27:23 -04:00
Andrew Martinez 47499bc4f1 add mfa options
- allow timeouts for MFA posture checks
- allow wake/unlocked MFA options
- allow legacy toggle for SDKs that don't supply endpoint state
- supply timeouts on posture checks
- posture data now caches session state
2021-07-07 08:39:39 -04:00
Paul Lorenz 3151d31b7f Handle xweb import change (#697)
* Handle xweb import change. Fix tunnel update/delete terminator handling
2021-06-22 14:18:17 -04:00
Andrew 825c0a327a Merge pull request #685 from openziti/fix.process.multi.patch
fixes issues with process multi's patch
2021-06-14 14:18:56 -04:00
Paul Lorenz d920dbbd93 Fix sync early exit bug. Track new session during sync. Simplify thre… (#686)
* Fix sync early exit bug. Track new session during sync. Simplify threading and tighten up locking. Add dump api-sessions debug operation

* Address review comments. Remove spurious error message. Fix defaultHostingCost/Precedence field names
2021-06-11 14:01:20 -04:00
Andrew Martinez 271bf051e0 fixes issues with process multi's patch
- NULL output for empty arrays will now be empty array "[]"
- patching no longer clears osType
- patching with the same path between two different OS types no longer
  collides resulting in 1 process being saved
2021-06-10 16:31:26 -04:00
Paul Lorenz ef8847b34e Delete expired api sessions in batches. Remove some unused methods 2021-06-09 15:40:42 -04:00
Paul Lorenz a3dd639981 Fix setting identity service costs/precedences when patching 2021-06-08 12:54:11 -04:00
Paul Lorenz e180d2fa7b Fix updating terminators when cost is omitted 2021-05-20 11:11:25 -04:00
Paul Lorenz 3f3c1318c7 Merge pull request #665 from openziti/fix-app-data-updates
Add appData to filtered jsonfields. Remove unused identity checker field
2021-05-19 13:37:58 -04:00
Paul Lorenz 9af29b5072 Add appData to filtered jsonfields. Remove unused identity checker field 2021-05-18 21:08:19 -04:00
Andrew Martinez 603fdbd772 set base posture check properties for process multi 2021-05-18 14:39:57 -04:00
Andrew Martinez cc1574fdc9 update /version endpoint
- now reports all versions, api bindings, and api bind points from xweb
- now reports api base urls (http://<bindpoint>/<api path>
- now points 'edge' to 'edge-client' api binding
2021-05-07 10:46:24 -04:00
Andrew Martinez 6625084569 use xweb for Edge Client and Management APIs
- use xweb for run
- use xweb for api tests
- use time.ParseDuration for edge configuration
- use CORS defaults in Client/Management API handlers
2021-05-06 16:45:48 -04:00
Andrew Martinez b562fb5c07 splits API specs into composible modules
- splits Open API 2.0 (swagger) into client/management APIs
- uses go-swaggers flatten capabilities
- uses newer version of go-swagger (v0.27.0)
- introduces /edge/client/v1, /edge/management/v1
- non-prefixed URLs default to /edge/client/v1
- splits some shared management/client API handlers
- renames some REST models to "client" instead of "limited"
- passes all apitests, fails dataflow upd test (main fails this as well)
- updates generate rest script for powershell
- todo: test generate rest script for bash
- todo: use xweb (different branch)
2021-05-04 11:30:32 -04:00
Andrew Martinez 54af8801e7 adds posture check type PROCESS_MULTI
- adds a new posture check for dealing with multiple processes
- supports anyOf and allOf semantics
- does not require new posture responses, current process responses
  suffice
- tests
2021-04-20 08:52:23 -04:00
Andrew Martinez 4a9b226f0e adds the ability for router to extend their enrollment
- routers can now opt to extend their enrollment at any time with a
  previous or new key
- adds tests for router enrollment
- adds tests for router enrollment extension
2021-04-14 09:21:59 -04:00
Andrew Martinez b278f611d0 add policyType to posture query sets
- also fixes policy ids being set as the same value due to pointer in
  for loop reference
2021-04-13 15:26:17 -04:00
Paul Lorenz b493cce490 Add app data to identity and edge router. Add isSystem to ERP 2021-04-06 10:07:57 -04:00
Paul Lorenz 8f6234842e Add per-service identity hosting precedence/costs 2021-04-06 09:51:22 -04:00
Andrew Martinez a753022e37 unify api session modeling 2021-03-24 13:51:26 -04:00
Andrew Martinez 1100d6f388 update service update on posture data change, tests 2021-03-23 09:54:47 -04:00
Andrew Martinez 993f51f7ab set mfa posture on enroll
- update api session session state on mfa enroll
- update posture data state on mfa enroll
- centralize setting mfa posture data
- pass isMfaRequired and isMfaComplete in apiSession/currentApiSession
2021-03-23 09:54:46 -04:00
Paul Lorenz 680852f80e Allow tunnel to run over xgress directly 2021-03-22 14:33:54 -04:00
Andrew Martinez 5449b655b8 moves posture-data/failed-service-requests
- GET /identities/{id}/posture-data/failed-service-requests is now under
  /identities/{id}/failed-service-requests
2021-03-19 10:30:26 -04:00
Andrew Martinez c54a007202 formalize posture data API output, add service request errors
- GET /identity/{id}/posture-data is now formalized in the swagger.yml
- posture data output now includes the last 100 failed service requests
  with temporal posture data state
- added ziti controller instance id header to detect restarts
- add GET /identity/{id}/failed-service-requests
2021-03-19 09:49:44 -04:00
Andrew Martinez 7e559771f3 fixed cachedLastActivityAt 2021-03-19 09:10:23 -04:00
Andrew Martinez fccdc0591e fix expiresAt and expirationSeconds 2021-03-19 08:59:50 -04:00
Andrew Martinez 623681db87 add lastActivityAt
- as updates to API Sessions can now happen later than the last time
  they were active, updatedAt is no longer the correct representation of
  the last activity an API Session had
- move all logic that used updatedAt to lastActivityAt
- add migration to set lastActivityAt
2021-03-17 13:49:12 -04:00
Paul Lorenz 71a3a1643e Pass FieldChecker to toBoltEntityForPatch. Add some ReadByName methods. Move some code to allow re-use 2021-03-17 10:41:21 -04:00
Andrew Martinez 4dba6e95ab on invalid token ignore and check bool status only 2021-03-11 13:33:51 -05:00
Andrew Martinez 90ca54adb8 adds thread safe router state
Router state used to be stored and accessed in a thread unsafe way.
State is now locks on a mutex for setting values and values are copied
out for referencing.
2021-03-08 14:55:36 -05:00
Andrew Martinez 1b253839fc Merge branch 'main' into add.session.route 2021-03-04 09:47:10 -05:00
Andrew Martinez 5eb8649186 move routePath to /sessions/id/route-path 2021-03-04 09:44:12 -05:00
Paul Lorenz 735eb1d80f Move ApiError and FieldError to foundation 2021-03-03 14:44:26 -05:00
Andrew Martinez 005234cb39 add route path to session 2021-03-01 18:02:25 -05:00
Andrew Martinez 7e60583043 fix swagger parameter names, allow mfa codes on headers for get/delete
- swagger copy pasta was using the same parameter name for everything,
  "body", which made error messages read "error in body for body"
- parameter rename ripples into parameter property definitions
- allow mfa codes in GET and DELETe as libuv doesn't allow them to have
  bodies (-.-)
2021-02-25 14:23:12 -05:00
Andrew Martinez 75029f8600 centralize edge router properties, add supportedProtocols to edge
session

- centralized edge router properties so adding/altering affects all
  edge router output
- adds supportedProtocols to edge session create response
- mark urls on edge session create response as deprecated
2021-02-23 15:07:43 -05:00
Andrew Martinez a51cf270f2 ignore duplicate connecting routers, do not dereference er hostnames
hostnames may be a nil pointer at times now due to the fact that edge
routers may be waiting to sync and may be "online" but edge hellos
have not been exchanged.
2021-02-19 10:19:26 -05:00
Andrew Martinez d07618c9d5 modular edge router sync
- edge router sync is now modular and can have different strategies
- plans to make this configurabe in the future with multiple strat
- legacy strategy is called "instant" and is the only option
- instant strat now supports control signaling and resync requests
- edge routers now do not remove connections till after a full sync
- added the ability for the controller to report the er sync status
- added er syn status to GET /edge-routers list and detail
- improved log output in sync logic
2021-02-15 13:22:07 -05:00
Andrew Martinez 6a2c82deca add timeout posture query property, -1 == no timeout
Provides a location for future configurable timeouts and allows
SDKs to detect whether no timeout/timeouts are supported.
2021-02-10 17:13:23 -05:00
Andrew Martinez 5b5fe97961 fix ptr to string in error message 2021-02-09 14:01:20 -05:00
Andrew Martinez 9fab8e6ed0 fix formatting message
Some deps altered after a go test ./... and go mod tidy
2021-02-09 13:57:49 -05:00
Andrew Martinez 46166db9cc fixes orphaned ottca enrollments
- deletes ottca enrollment when CA is deleted
- adds API tests
- adds migration to remove currently orphaned ottca enrollments
- migration tested on a v15 database with orphaned ottca enrollments
2021-02-09 13:55:03 -05:00
Andrew 18513f7ee4 Merge pull request #504 from openziti/api.session.performance
moves hasApiSession lookup to api model and limit 1
2021-02-04 09:32:01 -05:00
Andrew Martinez 65832b8da5 fix missing formatted log call, spelling 2021-02-04 09:24:00 -05:00
Andrew Martinez e34d25b0dd fixes #484 adds current identity edge router lookup 2021-02-03 15:37:15 -05:00
Andrew Martinez 5c47c31016 moves hasApiSession lookup to api model and limit 1
This move isolates the cost of hasApiSession to the identity endpoint
lookups in the REST API. Being in the model caused this cost to be
shared on all identity lookups for internal logic.

Limit 1 is an attempt to reduce the cost of searching over a large set.
API Sessions do not have an index on identity id so there is still some
cost.
2021-02-03 14:01:53 -05:00
Andrew 5de4d629f3 Merge pull request #498 from openziti/add.server.header
fixes #497 send session header
2021-02-01 15:07:24 -05:00
Andrew Martinez df1f2a1a75 fixes #497 send session header
- add server headers during HTTP handler delegation rather than at HTTP
  response time
- remove all old header setting locations
- remove unused status writer and other response code
- add manual set on authentication for session headers
2021-02-01 14:28:29 -05:00