@@ -54,32 +54,14 @@ the library focuses on offering a toolset for "human teaming": that is, treating
5454are either _ teamclients_ or _ teamservers_ of others, within a defined -generally restricted- team of
5555users, which shall generally be strictly and securely authenticated.
5656
57- -----
58- ## Components & Terms
59-
60- The result consists in 2 Go packages (` client ` and ` server ` ) for programs needing to act as:
61- - A ** Team client** : a program, or one of its components, that needs to rely on a "remote" program peer
62- to serve some functionality that is available to a team of users' tools. The program acting as a
63- _ teamclient_ may do so for things as simple as sending a message to the team, or as complicated as a
64- compiler backend with which multiple client programs can send data to process and build.
65- - A ** Team server** : The remote, server-side counterpart of the software teamclient. Again, the
66- teamserver can be doing anything, from simply notifying users' teamclient connections to all the team
67- all the way to handling very complex and resource-hungry tasks that can only be ran on a server host.
68-
69- Throughout this library and its documentation, various words are repeatedly employed:
70- - _ teamclient_ refers to either the client-specific toolset provided by this library
71- (` team/client.Client ` core type) or the software making use of this teamclient code.
72- - _ teamserver_ refers to either the server-specific toolset provided to make a program serve its
73- functionality remotely, or to the tools embedding this code in order to do so.
74- - _ team tool/s_ might be used to refer to programs using either or all of the library components at
75- large.
76-
7757-----
7858## CLI (Users)
7959
8060The following extracts assume a program binary named ` teamserver ` , which is simply the root command
8161of the server-side team code. In this case therefore, the binary program only purpose its to be a
82- teamserver, with no application-specific logic, (and is therefore quite useless on its own):
62+ teamserver, with no application-specific logic, (and is therefore quite useless on its own).
63+ For example, if your application ` cracker ` makes use of a teamserver/client, all the following
64+ commands would look like ` cracker teamserver daemon ` , ` cracker teamserver client users ` , etc:
8365```
8466$ teamserver
8567Manage the application server-side teamserver and users
@@ -156,6 +138,26 @@ teamclient users
156138teamclient version
157139```
158140
141+ -----
142+ ## Components & Terms
143+
144+ The result consists in 2 Go packages (` client ` and ` server ` ) for programs needing to act as:
145+ - A ** Team client** : a program, or one of its components, that needs to rely on a "remote" program peer
146+ to serve some functionality that is available to a team of users' tools. The program acting as a
147+ _ teamclient_ may do so for things as simple as sending a message to the team, or as complicated as a
148+ compiler backend with which multiple client programs can send data to process and build.
149+ - A ** Team server** : The remote, server-side counterpart of the software teamclient. Again, the
150+ teamserver can be doing anything, from simply notifying users' teamclient connections to all the team
151+ all the way to handling very complex and resource-hungry tasks that can only be ran on a server host.
152+
153+ Throughout this library and its documentation, various words are repeatedly employed:
154+ - _ teamclient_ refers to either the client-specific toolset provided by this library
155+ (` team/client.Client ` core type) or the software making use of this teamclient code.
156+ - _ teamserver_ refers to either the server-specific toolset provided to make a program serve its
157+ functionality remotely, or to the tools embedding this code in order to do so.
158+ - _ team tool/s_ might be used to refer to programs using either or all of the library components at
159+ large.
160+
159161-----
160162## API (Developers)
161163
@@ -341,13 +343,12 @@ This teamserver library aims to remain small, with a precise behavior and role.
341343Overall, contributions and ideas should revolve around strenghening its core/transport code
342344or around enhancing its interoperability with as much Go code/programs as possible.
343345
344- - [ ] Use viper for configs.
345- - [ ] Use afero filesystem.
346346- [ ] Add support for encrypted sqlite by default.
347347- [ ] Encrypt in-memory channels, or add option for it.
348348- [ ] Simpler/different listener/dialer backend interfaces, if it appears needed.
349349- [ ] Abstract away the client-side authentication, for pluggable auth/credential models.
350350- [ ] Replace logrus entirely and restructure behind a single package used by both client/server.
351351- [ ] Review/refine/strenghen the dialer/listener init/close/start process, if it appears needed.
352352- [ ] ` teamclient update ` downloads latest version of the server binary + method to ` team.Client ` for it.
353+ - [ ] Implement tests for most sensitive paths (certificates management, database functioning, etc)
353354
0 commit comments