Commit Graph

56 Commits

Author SHA1 Message Date
Paul Lorenz 01bea19e1f Update to use transport and storage libs. Use fabric config instead of foundation/config 2022-03-30 22:49:46 -04:00
Andrew Martinez 3380807334 adds ext-jwt authenticator
- enables /authenticate?method=ext-jwt
- adds ext-jwt to OpenAPI schema
- rebase to main, squash
2022-03-08 10:01:38 -05:00
Paul Lorenz 5be9095e60 Update to use channel library 2022-01-28 11:35:15 -05:00
Paul Lorenz 3f69bfdd43 Update for control channel API changes 2022-01-19 08:37:40 -05:00
Andrew Martinez 1f784d89ce adds asynchronous eventer to controller
- emits events for processing progress/state for metric instrumentation
- emits events for eventual event backlog state for metrics
- alters Trigger() to return a channel that can be waited upon
- adds ability to add eventual events within a specific bbolt
  transaction
- splits session lookup and delete into view/update transactions
- add eventual event gauge
- use CascadeCreateUpdate
- adds named functions
- documentation for 500us timeout
- grammar fixes
2022-01-18 14:19:36 -05:00
Paul Lorenz f1709586a2 Merge pull request #864 from openziti/cache-tunnel-sessions
Cache tunnel sessions in LRU cache to avoid creating extraneous sessions
2022-01-18 09:15:05 -05:00
Andrew Martinez 050b0b086e moves metric endpoint logging lower in the stack
- endpoint url/path -> name remains the same
- start timing on request context before we start processing
- log metrics in IsAllowed which is called by all endpoint after routing
- logging before routing to a handler would log all probe attacks
2022-01-17 10:12:59 -05:00
Paul Lorenz fd866e7f3d Cache tunnel sessions in LRU cache to avoid creating extraneous sessions 2022-01-13 12:38:54 -05:00
Andrew Martinez 8b20f0278a normalize URL ids for metric names 2022-01-06 14:42:31 -05:00
Andrew Martinez 65702f502a swap from brackets to period seperators 2022-01-06 14:11:01 -05:00
Andrew Martinez dfa0f7c6ab adds metrics for endpoints with keys of path[method] 2022-01-06 14:02:36 -05:00
Andrew Martinez dae084f61c alters router/controller enrollment extension logic
- routers propertly wait on certs that are about to expire
- routers no longer send multiple extension requests
- routers now request cert verification
- routers now verify new certs before saving
- controller now supports verification requests
2021-12-20 09:19:10 -05:00
Paul Lorenz bfcb037783 Initial pass at fabric rest api working (#838)
* Update for fabric rest controller changes
2021-11-30 16:30:17 -05:00
Andrew Martinez 050d5eb0dc fix possible formatting error 2021-10-19 11:31:31 -04:00
Andrew Martinez 6612ad9c14 fix startup timing issues 2021-10-19 10:58:59 -04:00
Andrew Martinez 45158ff864 updates to newest foundation/fabric/sdk-golang 2021-10-18 16:07:33 -04:00
Paul Lorenz 23c98c2d5a Add more tracing and allow enabling debug for specific identities for path selection/establishment 2021-08-09 11:20:51 -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
Paul Lorenz 01ed7b8a1c Add policy engine start back in 2021-06-08 12:42:08 -04:00
Andrew Martinez 6ee4f6a8a5 rework CaPems for ca store calculations 2021-05-11 14:18:08 -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
Paul Lorenz 57da48f142 Move terminator validation from xtv to control channel handler 2021-04-29 13:46:54 -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
Paul Lorenz 038e9bdd91 Add support for host.v1. Add health checks to host.v1. Add host.v2 (multiple terminators). Add support for health events. 2021-03-25 15:43:07 -04:00
Andrew Martinez 170f318a66 check if enabled before trying to clean up 2021-03-23 15:07:33 -04:00
Paul Lorenz 680852f80e Allow tunnel to run over xgress directly 2021-03-22 14:33:54 -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 83fa865c2c remove unused shutdown() function 2021-03-19 09:15:24 -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 155bbd8217 Validate sessions on controller instead of edge router 2021-02-17 20:38:13 -05:00
Andrew Martinez 74d4187f22 documentation, split shared options for instant sync, renames 2021-02-15 14:56:56 -05:00
Andrew Martinez d76fcbc168 merge stops in instant strat, add broker stop to shutdown 2021-02-15 13:39:07 -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 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
Andrew Martinez d6a5f329c5 fixes #477 add configurable http timeouts 2021-01-21 14:09:42 -05:00
Paul Lorenz 2194d8a2e2 Implement service change notifications 2021-01-15 15:28:59 -05:00
Andrew Martinez a317d37cd4 fix #336 separate init and run 2020-10-09 04:16:59 -04:00
Paul Lorenz 50bc204dd5 Add edge terminator validator 2020-09-29 09:27:05 -04:00
Andrew Martinez a3ee258df2 fixes #305 reimplements chain validation
- cert auth module caches static and dynamic (3rd party) CA chains
- all cert auths validated against active chains
- deleted/disabled 3rd party CAs no longer validate
2020-09-22 07:11:55 -04:00
Andrew Martinez 8f428ab498 enable redoc by enabling swagger SPEC url 2020-08-24 13:57:10 -04:00
Andrew M faec4b95ba various fixes for API streaming and data net support
- http requests should hard timeout w/ a reasonable response
- edge routers should close when an API session token is not provided or
  does not match
- stream both types of sessions on edge router connect
- stream sessions for time out processing/deletion
- add id to session messages (edge control pb update, breaks backwards
  compat)
2020-08-24 08:31:45 -04:00
Paul Lorenz 8e7f096b22 Fix hello timeout by making it fully async. Fixes GH-248 2020-07-20 17:31:16 -04:00
Andrew M 092f0f540e adds apiVersions to /version 2020-06-16 12:31:46 -04:00
Andrew M 7d34b9eadf set base path to /edge/v1
- reroute API requests for the root to edge/v1 (i.e. / -> /edge/v1
- fix pagination empty values being omitted
2020-06-16 12:15:35 -04:00
Andrew M 3087972172 all conversion work
- remove old JSON schema, unsused code
- remove unused variables from base router functions
- rework all API entities
- rework all links
- fix lint issues
- adds error conversion logic
- update tests as needed
- fix up go test
- fix backwards compat w/ non json enroller
2020-06-09 14:11:23 -04:00
Andrew M b6d9efaf8c fixed #183, move to openziti 2020-05-26 17:37:35 -04:00
Andrew Martinez 214c25a628 adds transit router enrollment and CRUD, resolves #27
- allows fabric routers to  be created in an unenrolled state
- allows fabric routers to be CRUD
- converts both edge and transit routers to use the same enrollment
facilities as identities (1st step to merge)
- migrations for enrollment changes
- adds ability to extend a base store
- add external cleanup logic to tx router to handle isbase=true
- use router handler for is connected status
2020-04-01 10:10:34 -04:00
Paul Lorenz 7d60e03b65 Remove copyright date from header 2020-03-19 13:47:42 -04:00