You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs.openc3.com/docs/configuration/plugins.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -61,7 +61,7 @@ The VARIABLE keyword defines a variable that will be requested for the user to e
61
61
## NEEDS_DEPENDENCIES
62
62
<divclass="right">(Since 5.5.0)</div>**Indicates the plugin needs dependencies and sets the GEM_HOME environment variable**
63
63
64
-
If the plugin has a top level lib folder or lists runtime dependencies in the gemspec, NEEDS_DEPENDENCIES is effectively already set. Note that in Enterprise Edition, having NEEDS_DEPENDENCIES adds the NFS volume mount to the Kubernetes pod.
64
+
If the plugin has a top level lib folder or lists runtime dependencies in the gemspec, NEEDS_DEPENDENCIES is effectively already set. Note that in Enterprise, having NEEDS_DEPENDENCIES adds the NFS volume mount to the Kubernetes pod.
Container to execute and run the microservice in. Only used in COSMOS Enterprise Edition.
314
+
Container to execute and run the microservice in. Only used in COSMOS Enterprise.
315
315
316
316
| Parameter | Description | Required |
317
317
|-----------|-------------|----------|
@@ -693,7 +693,7 @@ Generic key/value(s) options to pass to the microservice. These take the form of
693
693
### CONTAINER
694
694
**Docker Container**
695
695
696
-
Container to execute and run the microservice in. Only used in COSMOS Enterprise Edition.
696
+
Container to execute and run the microservice in. Only used in COSMOS Enterprise.
697
697
698
698
| Parameter | Description | Required |
699
699
|-----------|-------------|----------|
@@ -839,7 +839,7 @@ Whether or not the tool is shown in the Navigation menu. Should generally be tru
839
839
### POSITION
840
840
<divclass="right">(Since 5.0.8)</div>**Position of the tool in the nav bar**
841
841
842
-
Position of the tool starting at 2 (1 is reserved for Admin Console). Tools without a position are appended to the end as they are installed. All COSMOS open source tools have consecutive integer values for position.
842
+
Position of the tool starting at 2 (1 is reserved for Admin Console). Tools without a position are appended to the end as they are installed. All COSMOS Core tools have consecutive integer values for position.
Copy file name to clipboardExpand all lines: docs.openc3.com/docs/configuration/protocols.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -282,7 +282,7 @@ The Ignore Packet protocol drops specified command packets sent by COSMOS or dro
282
282
283
283
## Custom Protocols
284
284
285
-
Creating a custom protocol is easy and should be the default solution for customizing COSMOS Interfaces (rather than creating a new Interface class). However, creating custom Interfaces is still useful for defaulting parameters to values that always are fixed for your target and for including the necessary Protocols. The base COSMOS Interfaces take a lot of parameters that can be confusing to your end users. Thus you may want to create a custom Interface just to hard coded these values and cut the available parameters down to something like the hostname and port to connect to.
285
+
Creating a custom protocol is easy and should be the default solution for customizing COSMOS Interfaces (rather than creating a new Interface class). However, creating custom Interfaces is still useful for defaulting parameters to values that always are fixed for your target and for including the necessary Protocols. The COSMOS Interfaces take a lot of parameters that can be confusing to your end users. Thus you may want to create a custom Interface just to hard coded these values and cut the available parameters down to something like the hostname and port to connect to.
286
286
287
287
All custom Protocols should derive from the Protocol class [openc3/interfaces/protocols/protocol.rb](https://github.com/OpenC3/cosmos/blob/main/openc3/lib/openc3/interfaces/protocols/protocol.rb) (Ruby) and [openc3/interfaces/protocols/protocol.py](https://github.com/OpenC3/cosmos/blob/main/openc3/python/openc3/interfaces/protocols/protocol.py) (Python). This class defines the 9 methods that are relevant to writing your own protocol. The base class implementation for each method is included below as well as a discussion as to how the methods should be overridden and used in your own Protocols.
Copy file name to clipboardExpand all lines: docs.openc3.com/docs/development/curl.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,9 +11,9 @@ This information is just generally used behind the scenes in COSMOS tools
11
11
12
12
The COSMOS APIs are all served over HTTP, which means you can use curl to experiment with them. Curl is a great tool for seeing exactly how the API responds to any given request.
13
13
14
-
## Curl Example with OpenC3 COSMOS Open Source
14
+
## Curl Example with OpenC3 COSMOS Core
15
15
16
-
OpenC3 COSMOS Open Source just has a single user account, so all you need to do is pass the single password as the token with your requests like this.
16
+
OpenC3 COSMOS Core just has a single user account, so all you need to do is pass the single password as the token with your requests like this.
Copy file name to clipboardExpand all lines: docs.openc3.com/docs/development/developing.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,7 +7,7 @@ sidebar_custom_props:
7
7
8
8
# Developing COSMOS
9
9
10
-
So you want to help develop COSMOS? All of our open source COSMOS code is on [Github](https://github.com/) so the first thing to do is get an [account](https://github.com/join). Next [clone](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository) the [COSMOS](https://github.com/openc3/cosmos) repository. We accept contributions from others as [Pull Requests](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests).
10
+
So you want to help develop COSMOS? All of our COSMOS Core code is on [Github](https://github.com/) so the first thing to do is get an [account](https://github.com/join). Next [clone](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository) the [COSMOS](https://github.com/openc3/cosmos) repository. We accept contributions from others as [Pull Requests](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests).
The script methods allow you to list the available scripts, spawn a script, and run a script while monitoring its output. Note that you must set the OPENC3_API_PASSWORD in Open Source and both the OPENC3_API_USER and OPENC3_API_PASSWORD in Enterprise.
71
+
The script methods allow you to list the available scripts, spawn a script, and run a script while monitoring its output. Note that you must set the OPENC3_API_PASSWORD in COSMOS Core and both the OPENC3_API_USER and OPENC3_API_PASSWORD in COSMOS Enterprise.
72
72
73
73
:::note Offline Access Token
74
74
You must visit the frontend Script Runner page as the OPENC3_API_USER or run "openc3.sh cli script init" in order to obtain an offline access token before the other script cli methods will work.
| .gitignore | Tells git to ignore any node_modules directory (for tool development) |
40
-
| LICENSE.txt | License for the plugin. COSMOS Plugins should be licensed in a manner compatible with the AGPLv3, unless they are designed only for use with COSMOS Enterprise Edition.|
40
+
| LICENSE.txt | License for the plugin. COSMOS Plugins should be licensed in a manner compatible with the AGPLv3, unless they are designed only for use with COSMOS Enterprise. |
41
41
| openc3-cosmos-gse.gemspec | Gemspec file which should be edited to add user specific information like description, authors, emails, homepage, etc. The name of this file is used in compiling the plugin contents into the final corresponding gem file: e.g. openc3-cosmos-gse-1.0.0.gem. COSMOS plugins should always begin with the openc3-cosmos prefix to make them easily identifiable in the Rubygems repository. The file is formatted as documented at: https://guides.rubygems.org/specification-reference/|
42
42
| plugin.txt | COSMOS specific file for Plugin creation. Learn more [here](../configuration/plugins). |
43
43
| Rakefile | Ruby Rakefile configured to support building the plugin by running "openc3.sh cli rake build VERSION=X.X.X" where X.X.X is the plugin version number |
Copy file name to clipboardExpand all lines: docs.openc3.com/docs/getting-started/key-concepts.md
+14-5Lines changed: 14 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,32 +18,41 @@ The main COSMOS [repo](https://github.com/OpenC3/cosmos) contains all the source
18
18
19
19
Per [Docker](https://docs.docker.com/get-started/overview/#images), "An image is a read-only template with instructions for creating a Docker container." The base operating system COSMOS uses is called [Alpine Linux](https://www.alpinelinux.org/). It is a simple and compact image with a full package system that allows us to install our dependencies. Starting with Alpine, we create a [Dockerfile](https://docs.docker.com/engine/reference/builder/) to add Ruby and Python and a few other packages to create our own docker image. We further build upon that image to create a NodeJS image to support our frontend and additional images to support our backend.
20
20
21
+
The following diagram shows all the COSMOS Core and Enterprise container images. Images are built from the bottom up in the Dockerfile using [FROM](https://docs.docker.com/reference/dockerfile/#from). Images referenced with "Uses" are used during the build stage.
22
+
23
+

24
+
21
25
### Containers
22
26
23
27
Per [Docker](https://www.docker.com/resources/what-container/), "a container is a standard unit of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another." Also per [Docker](https://docs.docker.com/guides/walkthroughs/what-is-a-container/), "A container is an isolated environment for your code. This means that a container has no knowledge of your operating system, or your files. It runs on the environment provided to you by Docker Desktop. Containers have everything that your code needs in order to run, down to a base operating system." COSMOS utilizes containers to provide a consistent runtime environment. Containers make it easy to deploy to local on-prem servers, cloud environments, or air-gapped networks.
24
28
25
-
The COSMOS Open Source containers consist of the following:
29
+
The COSMOS Core containers consist of the following:
| cosmos-enterprise-openc3-grafana-1 |[Grafana](https://grafana.com/) container preconfigured with the COSMOS Data Source |
42
47
| cosmos-enterprise-openc3-metrics-1 | Rails server that provides metrics on COSMOS performance |
43
48
| cosmos-enterprise-openc3-keycloak-1 | Single-Sign On service for authentication |
44
49
| cosmos-enterprise-openc3-postgresql-1 | SQL Database for use by Keycloak |
45
50
| openc3-nfs \*| Network File System pod only for use in Kubernetes to share code libraries between containers |
46
51
52
+
A diagram of the running containers is shown below:
53
+
54
+

55
+
47
56
### Docker Compose
48
57
49
58
Per [Docker](https://docs.docker.com/compose/), "Compose is a tool for defining and running multi-container Docker applications. With Compose, you use a YAML file to configure your application's services. Then, with a single command, you create and start all the services from your configuration." OpenC3 uses compose files to both build and run COSMOS. The [compose.yaml](https://github.com/OpenC3/cosmos-project/blob/main/compose.yaml) is where ports are exposed and environment variables are used.
- The interface will be exposed internally to Docker (Open Source or Enterprise) at: `http://openc3-operator:2910`
76
+
- The interface will be exposed internally to Docker (Core or Enterprise) at: `http://openc3-operator:2910`
77
77
- The interface will be exposed internally to Kubernetes (Enterprise) at: `http://default-interface-my-int-service:2905`
78
78
- The interface will be exposed externally to the network at: `http://localhost:2900/myint`
79
79
@@ -86,7 +86,7 @@ The sharded operator is expected to be used on Kubernetes whenever the Kubernete
86
86
87
87
Sometimes you might want to have an INTERFACE connect to a microservice you are running. For this case, only the PORT keyword is required on the INTERFACE or MICROSERVICE because we are only connecting internally and ROUTE_PREFIX isn't used.
88
88
89
-
The following code taken from our demo plugin provides an example of how to calculate the correct hostname across both Open Source and Enterprise versions of COSMOS in a plugin.txt file:
89
+
The following code taken from our demo plugin provides an example of how to calculate the correct hostname across both Core and Enterprise versions of COSMOS in a plugin.txt file:
0 commit comments