Commit Graph

63 Commits

Author SHA1 Message Date
Paul Lorenz 898e41ae2a Implement router data model changesets. Fixes #1966 2024-04-23 11:56:10 -04:00
Andrew Martinez 8c7b3b2e84 reduces prerms from admin to authenticated on list controllers
- updated public key sync to use controller list data instead of mesh peer
- fixes perms on controller list to not be admin only
2024-03-26 10:55:50 -04:00
Paul Lorenz 881ec14b63 Fix validation perf. Fixes #1428. Remove duplicate LoadOneById method. 2024-03-21 10:10:07 -04:00
Andrew Martinez 401de61bbc spelling errors 2024-02-29 10:06:22 -05:00
Andrew Martinez 09542c7728 consolidated ha changes 2024-02-29 09:27:56 -05:00
Paul Lorenz a84369a6e9 Consolidate fabric and edge persistence code. Fixes #1555 2023-12-06 17:36:37 -05:00
Paul Lorenz f3d67b7f49 Update fabric imports 2023-09-28 23:34:28 -04:00
Paul Lorenz 07da3cd513 Merge remote-tracking branch 'edge/main' into merge-edge
Updated package names
Merged golangci-lint configurations
2023-09-27 16:54:53 -04:00
Paul Lorenz 5b59ae13ee Update for moved packages in fabric 2023-08-23 09:40:05 -04:00
Paul Lorenz dba0fb6f7c Move protobufs to common 2023-08-04 17:01:15 -04:00
Andrew Martinez 414cff49d7 adds support OIDC authentication, api access, and ER connections 2023-07-20 09:41:12 -04:00
Paul Lorenz 82cbbefceb Fix event type 2023-04-25 14:04:14 -04:00
Paul Lorenz bd1b25f60c Update presentation layer for api changes 2023-04-25 13:26:03 -04:00
Andrew Martinez 2f51b4acd7 reworks broker/sync connect/disconnect logic
- defensive checks for closed control channels
- defensive checks for duplicate/mismatch control channels
2023-03-20 15:28:09 -04:00
Paul Lorenz 63c161224a Add linter and fix issues found by linter 2022-10-10 16:56:51 -04:00
Paul Lorenz 32c197e5e1 Update to channel v2 2022-09-26 18:20:00 -04:00
Paul Lorenz 12df770d04 Update copyright 2022-06-30 17:45:08 -04:00
Paul Lorenz 2f6a3bc828 Update handler -> manager for base types and config 2022-06-02 00:05:54 -04:00
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
Paul Lorenz 5be9095e60 Update to use channel library 2022-01-28 11:35:15 -05:00
Andrew Martinez 9b05d4e49b move broker event handlers to go routines 2022-01-17 13:59:33 -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
Andrew Martinez b0f9f18f72 adds EventFullyAuthenticated to the API session store
The previous implementation would send API Sessions to Edge Routers
while partially authenticated. Due to state issues addressed separately
in the c-SDK, these partial API Sessions are maintained if a channel
connected to an edge router was established during reconnect. This would
further cause problems with channel connection using the wrong API
session vs what the rest of the SDK was using.
2021-09-13 15:15:34 -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 09b60f3ed8 Debugf to Infof 2021-06-04 12:30:27 -04:00
Andrew Martinez a6e0f4e807 revert defensive logic 2021-06-04 12:24:57 -04:00
Andrew Martinez 5a5fefa092 fixes deadlocks when a router disconnects mid sync or update
- range() of rtx'ers no longer locks, snapshots then loops
- rtx.Send() now checks for stopped/disconnected
- rtx.Send() now respects closeNotify
2021-05-25 16:23:20 -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 fff256487c status to state in broker 2021-03-08 15:04: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 4afc0bd0b6 fix dupe connection testing by looking at strat stat not network state 2021-02-19 11:18:09 -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
Paul Lorenz 155bbd8217 Validate sessions on controller instead of edge router 2021-02-17 20:38:13 -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 2c1a9dd82b ignores dupe router startup
A second edge router starting up could offline the original according to
the edge. This would cause issues w/ API Session and Session
distribution.
2021-02-10 10:58:50 -05:00
Curt Tudor 2c6814aaa4 edge router enhancements for browZer support (#499) 2021-02-04 06:09:46 -05:00
Paul Lorenz f485d4e8c3 Update service poller to use service update callback 2021-01-29 15:32:51 -05:00
Andrew Martinez a3789c063a adds support of API Session Certificates
- adds ability for any authenticated API Session to create ephemeral
 certificates
- allows UPDB session connection
- adds create/delete/read of current api session certificates
- add session cert pem result on create and detail
- fixes ER not updating sessions with new certs from API session
- fixes naming of session vs apiSession on members, functions, etc
- organizes ER state manager functions into apiSession vs session
- adds api session ids to api sessions and sessions sent from the
  controller to ERs
- ensure api and ns fingerprints are the same
- filter api session certs by valid periods
- clarify fingerprint func naming
2021-01-06 09:42:57 -05:00
Andrew Martinez 3bbff3a01a support version info from fabric 2020-10-07 07:25:14 -04:00
Paul Lorenz 50bc204dd5 Add edge terminator validator 2020-09-29 09:27:05 -04:00
Paul Lorenz 50c6b3e4b3 Support identity dial/bind 2020-09-29 09:27:03 -04:00
Andrew Martinez a97fbd1ffa remove session delete sync
Turns out this is important for high availability reworked probe and sdk
to deal with it as it was.
2020-08-26 13:35:03 -04:00
Andrew Martinez 006995db6c use fabric event system for session lifecycle 2020-08-25 13:15:47 -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
Andrew M e39c21b6a1 e2e support fixes #173
- adds edge level edge_transport xgress
- adds service encyrptionRequired flag (rest API, protobuffs)
- adds edge router encryption checks
2020-07-27 16:18:46 -04:00
Paul Lorenz 8e7f096b22 Fix hello timeout by making it fully async. Fixes GH-248 2020-07-20 17:31:16 -04:00
Paul Lorenz 64ce3a92df move edge routers under fabric routers. Fixes GH-144 2020-06-17 16:36:14 -04:00
Andrew M 0923db08d5 Merge branch 'master' into open.api 2020-06-15 13:49:23 -04:00
Andrew M ec0b662471 code review fixes 2020-06-11 00:46:12 -04:00