-
Notifications
You must be signed in to change notification settings - Fork 11
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
3391411
commit 30ac38a
Showing
23 changed files
with
4,204 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -59,6 +59,7 @@ docs | |
**/*.md | ||
**/*.rst | ||
NOTICE | ||
proposals/ | ||
|
||
# Scripts | ||
bin/ci | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
# Synse v3 Proposals | ||
This directory contains proposals and specifications for Synse v3. | ||
|
||
## Overview | ||
Synse v3 is the next iteration of the Synse platform that will bring simplifications | ||
and generalizations to the platform, doing away with design patterns from older versions | ||
that are no longer needed. These changes should make the HTTP API more intuitive, make | ||
plugin development simpler, expand the platform's capabilities, and allow for better | ||
visibility and monitoring of the services themselves. | ||
|
||
The documents in this directory focus on particular aspects of Synse v3 -- all of | ||
them together are considered the proposal/spec for Synse v3. | ||
|
||
### Primary Goals | ||
- Replace the *rack/board/device* routing hierarchy with a tag-based routing system | ||
- Maintain having deterministic device IDs with the IDs being globally unique (instead of only | ||
being unique to the rack/board) | ||
- Expand API capabilities | ||
- Provide better support for container management/monitoring | ||
- Improve performance, where possible | ||
- Maintain high test coverage | ||
|
||
## Table of Contents | ||
0. **[Device Tags](tags.md)** - tag-based routing for Synse devices | ||
0. **[Device IDs](ids.md)** - globally unique device ID generation | ||
0. **[API](api.md)** - the Synse v3 HTTP API | ||
0. **[Reads](reads.md)** - updates to device read behavior in Synse | ||
0. **[Writes](writes.md)** - updates to device write behavior in Synse | ||
0. **[Health Check](health.md)** - implementing service health checks | ||
0. **[Synse Server](server.md)** - general updates and changes to Synse Server | ||
0. **[Synse SDK](sdk.md)** - general updates and changes to Synse SDK | ||
0. **[Synse CLI](cli.md)** - updates and new features for the Synse CLI | ||
0. **[GRPC API](grpc.md)** - updates to the GRPC API for communicating with plugins | ||
0. **[Monitoring & Metrics](monitoring.md)** - exposing Synse server metrics | ||
0. **[Third Party Usage](third-party.md)** - goals and requirements for direct third party usage | ||
0. **[Security](security.md)** - updates and enhancements to security capabilities | ||
0. **[Scaffolding](scaffolding.md)** - project tooling and scaffolding | ||
0. **[Tests](tests.md)** - updates to Synse tests and testing methodologies | ||
0. **[API Clients](api-clients.md)** - updates to the various Synse HTTP API clients | ||
0. **[Blackbox](blackbox.md)** - updates to the internal Blackbox project | ||
0. **[Versioning](versioning.md)** - project versioning and component comaptibility | ||
|
||
## Appendix | ||
0. [Appendix A](appendix-a.md): Configuration Examples |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
# API Clients | ||
## Summary | ||
Existing API clients will need to be updated for Synse v3. | ||
|
||
## High Level Work Items | ||
- Update the API client libraries for the Synse HTTP API | ||
- python: (https://github.com/vapor-ware/synse-client-python) | ||
- golang: (https://github.com/vapor-ware/synse-client-go) | ||
- Update the API client libraries for the [Blackbox](blackbox.md) HTTP API | ||
- python: (https://github.com/vapor-ware/blackbox-client-python) | ||
|
||
## Proposal | ||
The existing API clients need to be updated to comply with the Synse v3 [HTTP API spec](api.md). | ||
These clients are either actively used in other projects or will be actively used. | ||
|
||
There may be work items for these clients which fall out of discussions on | ||
[third party access](third-party.md). | ||
|
||
Support for WebSockets as the transport layer will be added to [Synse Server](server.md#websocket-support), | ||
so API clients will need to be able to support both HTTP and WebSocket transport. | ||
|
||
### Existing Clients | ||
Below is a list of existing clients which will need to be updated. | ||
|
||
#### HTTP | ||
- [Synse Python Client](https://github.com/vapor-ware/synse-client-python) | ||
- Auto Fan (internal) | ||
- Edge Monitor (internal) | ||
- [Synse Go Client](https://github.com/vapor-ware/synse-client-go/) | ||
- Blackbox (internal) | ||
- [Synse CLI](https://github.com/vapor-ware/synse-cli) | ||
|
||
#### GRPC | ||
- [Synse GRPC](https://github.com/vapor-ware/synse-server-grpc) | ||
- [Synse Server](https://github.com/vapor-ware/synse-server) | ||
- [Synse SDK](https://github.com/vapor-ware/synse-sdk) (plugins) |
Oops, something went wrong.