cleanup: Started cleaning up the commenting format.

This commit is contained in:
James Wells 2023-03-20 07:20:46 -07:00
parent 0de851e0e5
commit b95d3950c5
Signed by: jwells
GPG key ID: 73196D10B8E65666
10 changed files with 94 additions and 70 deletions

View file

@ -4,8 +4,8 @@
ARG VARIANT="1.20" ARG VARIANT="1.20"
FROM mcr.microsoft.com/vscode/devcontainers/go:0-${VARIANT} FROM mcr.microsoft.com/vscode/devcontainers/go:0-${VARIANT}
COPY --from=aquasec/trivy:0.32.1 /usr/local/bin/trivy /usr/bin/trivy COPY --from=aquasec/trivy:0.38.3 /usr/local/bin/trivy /usr/bin/trivy
COPY --from=securego/gosec:2.13.1 /bin/gosec /usr/bin/gosec COPY --from=securego/gosec:2.15.0 /bin/gosec /usr/bin/gosec
# [Choice] Node.js version: none, lts/*, 16, 14, 12, 10 # [Choice] Node.js version: none, lts/*, 16, 14, 12, 10
ARG NODE_VERSION="none" ARG NODE_VERSION="none"

View file

@ -1,4 +1,4 @@
FROM dragonheim/golang:1.20 as builder FROM nikatjef/golang:1.20 as builder
ARG SEMVER=${SEMVER:-0.0.7} ARG SEMVER=${SEMVER:-0.0.7}
WORKDIR /gagent WORKDIR /gagent

View file

@ -52,19 +52,27 @@ var environment struct {
UUID string `env:"GAGENT_UUID" envDefault:""` UUID string `env:"GAGENT_UUID" envDefault:""`
} }
// This is the application version number. It can be overridden at build time /*
// using the -ldflags "-X main.semVER=0.0.1" option. * This is the application version number. It can be overridden at build time
* using the -ldflags "-X main.semVER=0.0.1" option.
*/
var semVER = "0.0.6" var semVER = "0.0.6"
// This is the application configuration. It is populated from the configuration /*
// file and then used throughout the application. * This is the application configuration. It is populated from the configuration
* file and then used throughout the application.
*/
var config gstructs.GagentConfig var config gstructs.GagentConfig
// We use a WaitGroup to wait for all goroutines to finish before exiting. /*
* We use a WaitGroup to wait for all goroutines to finish before exiting.
*/
var wg sync.WaitGroup var wg sync.WaitGroup
// This is the main function, and it assumes that the configuration file has /*
// already been read and parsed by the init() function. * This is the main function, and it assumes that the configuration file has
* already been read and parsed by the init() function.
*/
func main() { func main() {
log.Printf("[DEBUG] Configuration is %v\n", config) log.Printf("[DEBUG] Configuration is %v\n", config)
@ -117,11 +125,12 @@ func main() {
os.Exit(0) os.Exit(0)
} }
// This is the init() function. It is called before the main() function, and /*
// it reads the configuration file, parses the command line arguments, and * This is the init() function. It is called before the main() function, and
// reads the environment variables. It also sets up the logging. * it reads the configuration file, parses the command line arguments, and
* reads the environment variables. It also sets up the logging.
*/
func init() { func init() {
// var err error
autorestart.StartWatcher() autorestart.StartWatcher()
cfg := environment cfg := environment

View file

@ -1,27 +1,32 @@
### [Source Code Scan](#source) ### [Source Code Scan](#source)
IGNORED: We are not using the protocol buffers provided by gogo/protobuf
``` ```
2022-03-16T16:27:43.221-0700 INFO Need to update DB 2023-03-15T06:59:15.989-0700 INFO Need to update DB
2022-03-16T16:27:43.221-0700 INFO Downloading DB... 2023-03-15T06:59:15.989-0700 INFO DB Repository: ghcr.io/aquasecurity/trivy-db
26.43 MiB / 26.43 MiB [---------------------------------------------------------------------------------------------------------------------------------------------------------------] 100.00% 5.71 MiB p/s 5s 2023-03-15T06:59:15.989-0700 INFO Downloading DB...
2022-03-16T16:27:49.073-0700 INFO Number of language-specific files: 1 36.01 MiB / 36.01 MiB [-----------------------------------------------------------------------------------------------------------------------------------------------------------------] 100.00% 7.93 MiB p/s 4.7s
2022-03-16T16:27:49.073-0700 INFO Detecting gomod vulnerabilities... 2023-03-15T06:59:21.791-0700 INFO Vulnerability scanning is enabled
2023-03-15T06:59:21.791-0700 INFO Secret scanning is enabled
2023-03-15T06:59:21.791-0700 INFO If your scanning is slow, please try '--scanners vuln' to disable secret scanning
2023-03-15T06:59:21.791-0700 INFO Please see also https://aquasecurity.github.io/trivy/v0.37/docs/secret/scanning/#recommendation for faster secret detection
2023-03-15T06:59:25.698-0700 INFO Number of language-specific files: 1
2023-03-15T06:59:25.699-0700 INFO Detecting gomod vulnerabilities...
go.sum (gomod) Total: 0 (UNKNOWN: 0, LOW: 0, MEDIUM: 0, HIGH: 0, CRITICAL: 0)
==============
Total: 1 (UNKNOWN: 0, LOW: 0, MEDIUM: 0, HIGH: 1, CRITICAL: 0)
+--------------------------+------------------+----------+-------------------+---------------+--------------------------------------+
| LIBRARY | VULNERABILITY ID | SEVERITY | INSTALLED VERSION | FIXED VERSION | TITLE |
+--------------------------+------------------+----------+-------------------+---------------+--------------------------------------+
| github.com/gogo/protobuf | CVE-2021-3121 | HIGH | 1.1.1 | 1.3.2 | gogo/protobuf: |
| | | | | | plugin/unmarshal/unmarshal.go |
| | | | | | lacks certain index validation |
| | | | | | -->avd.aquasec.com/nvd/cve-2021-3121 |
+--------------------------+------------------+----------+-------------------+---------------+--------------------------------------+
``` ```
--- ---
### [Image Scan](#image) ### [Image Scan](#image)
```
2023-03-15T07:05:44.377-0700 INFO Vulnerability scanning is enabled
2023-03-15T07:05:44.377-0700 INFO Secret scanning is enabled
2023-03-15T07:05:44.377-0700 INFO If your scanning is slow, please try '--scanners vuln' to disable secret scanning
2023-03-15T07:05:44.377-0700 INFO Please see also https://aquasecurity.github.io/trivy/v0.37/docs/secret/scanning/#recommendation for faster secret detection
2023-03-15T07:05:44.731-0700 INFO Detected OS: alpine
2023-03-15T07:05:44.731-0700 INFO Detecting Alpine vulnerabilities...
2023-03-15T07:05:44.732-0700 INFO Number of language-specific files: 1
2023-03-15T07:05:44.732-0700 INFO Detecting gobinary vulnerabilities...
NONE dragonheim/gagent:0.0.7 (alpine 3.17.2)
Total: 0 (UNKNOWN: 0, LOW: 0, MEDIUM: 0, HIGH: 0, CRITICAL: 0)
```

View file

@ -9,8 +9,9 @@ import (
gstructs "github.com/dragonheim/gagent/internal/gstructs" gstructs "github.com/dragonheim/gagent/internal/gstructs"
hclsimple "github.com/hashicorp/hcl/v2/hclsimple" hclsimple "github.com/hashicorp/hcl/v2/hclsimple"
// hclwrite "github.com/hashicorp/hcl/v2/hclwrite" /*
) * hclwrite "github.com/hashicorp/hcl/v2/hclwrite"
*/)
type GagentDb struct { type GagentDb struct {
chainRow []*gagentDbRow `hcl:"timestamp,block"` chainRow []*gagentDbRow `hcl:"timestamp,block"`

View file

@ -18,13 +18,13 @@ import (
) )
/* /*
Client mode will send an agent file to a router for processing * Client mode will send an agent file to a router for processing
Clients do not process the agent files, only send them as * Clients do not process the agent files, only send them as
requests to a router. If started without arguments, the client * requests to a router. If started without arguments, the client
will contact the router and attempt to retrieve the results * will contact the router and attempt to retrieve the results
of it's most recent request. * of it's most recent request.
Main is the entrypoint for the client process * Main is the entrypoint for the client process
*/ */
func Main(wg *sync.WaitGroup, config gstructs.GagentConfig) { func Main(wg *sync.WaitGroup, config gstructs.GagentConfig) {
log.Printf("[INFO] Starting client\n") log.Printf("[INFO] Starting client\n")
defer wg.Done() defer wg.Done()
@ -102,7 +102,6 @@ func sendAgent(wg *sync.WaitGroup, uuid string, connectString string, agent gstr
status, err := sock.SendMessage(agent) status, err := sock.SendMessage(agent)
if err != nil { if err != nil {
log.Printf("[ERROR] Failed to send agent to router\n") log.Printf("[ERROR] Failed to send agent to router\n")
// os.Exit(11)
return return
} }
log.Printf("[DEBUG] Agent send status: %d\n", status) log.Printf("[DEBUG] Agent send status: %d\n", status)

View file

@ -1,6 +1,8 @@
package gstructs package gstructs
// GagentConfig is the primary construct used by all modes /*
* GagentConfig is the primary construct used by all modes
*/
type GagentConfig struct { type GagentConfig struct {
Name string `hcl:"name,optional"` Name string `hcl:"name,optional"`
Mode string `hcl:"mode,attr"` Mode string `hcl:"mode,attr"`

View file

@ -24,13 +24,13 @@ var (
) )
/* /*
The 'router' processes routing requests from the agent. The router does * The 'router' processes routing requests from the agent. The router does
not handle any of the agent activities beyond processing the agent's * not handle any of the agent activities beyond processing the agent's
list of tags and passing the agent and it's storage to either a member * list of tags and passing the agent and it's storage to either a member
or client node. Tags are used by the agent to give hints as to where * or client node. Tags are used by the agent to give hints as to where
it should be routed. * it should be routed.
Main is the entrypoint for the router * Main is the entrypoint for the router
*/ */
func Main(wg *sync.WaitGroup, config gstructs.GagentConfig) { func Main(wg *sync.WaitGroup, config gstructs.GagentConfig) {
log.Printf("[INFO] Starting router\n") log.Printf("[INFO] Starting router\n")
defer wg.Done() defer wg.Done()
@ -139,7 +139,9 @@ func unwrap(msg []string) (head string, tail []string) {
func answerClient(w http.ResponseWriter, r *http.Request) { func answerClient(w http.ResponseWriter, r *http.Request) {
if r.URL.Path != "/" { if r.URL.Path != "/" {
opsProcessed.Inc() opsProcessed.Inc()
// fmt.Fprintf(w, "%v\n", r) /*
* fmt.Fprintf(w, "%v\n", r)
*/
http.NotFound(w, r) http.NotFound(w, r)
return return
} }

View file

@ -12,8 +12,8 @@ import (
) )
/* /*
Main is the entrypoint for the setup process * Main is the entrypoint for the setup process
*/ */
func Main(wg *sync.WaitGroup, config gs.GagentConfig) { func Main(wg *sync.WaitGroup, config gs.GagentConfig) {
log.Printf("[INFO] Starting setup\n") log.Printf("[INFO] Starting setup\n")
defer wg.Done() defer wg.Done()
@ -31,13 +31,15 @@ func Main(wg *sync.WaitGroup, config gs.GagentConfig) {
clientBlock1 := rootBody.AppendNewBlock("client", []string{config.Name}) clientBlock1 := rootBody.AppendNewBlock("client", []string{config.Name})
clientBody1 := clientBlock1.Body() clientBody1 := clientBlock1.Body()
// clientBody1.AppendUnstructuredTokens( /*
// hclwrite.TokensForTraversal(hcl.Traversal{ * clientBody1.AppendUnstructuredTokens(
// hcl.TraverseRoot{ * hclwrite.TokensForTraversal(hcl.Traversal{
// Name: hcl.CommentGenerator("comment"), * hcl.TraverseRoot{
// }, * Name: hcl.CommentGenerator("comment"),
// }, * },
// )) * },
* ))
*/
clientBody1.SetAttributeValue("clientid", cty.StringVal(config.UUID)) clientBody1.SetAttributeValue("clientid", cty.StringVal(config.UUID))
rootBody.AppendNewline() rootBody.AppendNewline()

View file

@ -7,7 +7,9 @@ import (
gstructs "github.com/dragonheim/gagent/internal/gstructs" gstructs "github.com/dragonheim/gagent/internal/gstructs"
// picol "github.com/dragonheim/gagent/src/picol" /*
* picol "github.com/dragonheim/gagent/src/picol"
*/
prometheus "github.com/prometheus/client_golang/prometheus" prometheus "github.com/prometheus/client_golang/prometheus"
promauto "github.com/prometheus/client_golang/prometheus/promauto" promauto "github.com/prometheus/client_golang/prometheus/promauto"
@ -22,12 +24,12 @@ var (
) )
/* /*
The "worker" processes the agent code. The worker nodes do not know * The "worker" processes the agent code. The worker nodes do not know
anything about the network structure. Instead they know only to which * anything about the network structure. Instead they know only to which
router(s) they are connected. The worker will execute the agent code and * router(s) they are connected. The worker will execute the agent code and
pass the agent and it's results to a router. * pass the agent and it's results to a router.
Main is the entrypoint for the worker process * Main is the entrypoint for the worker process
*/ */
func Main(wg *sync.WaitGroup, config gstructs.GagentConfig) { func Main(wg *sync.WaitGroup, config gstructs.GagentConfig) {
log.Printf("[INFO] Starting worker\n") log.Printf("[INFO] Starting worker\n")
defer wg.Done() defer wg.Done()
@ -46,7 +48,9 @@ func Main(wg *sync.WaitGroup, config gstructs.GagentConfig) {
wg.Add(1) wg.Add(1)
go getAgent(wg, config.UUID, connectString) go getAgent(wg, config.UUID, connectString)
} }
// workerListener := fmt.Sprintf("tcp://%s:%d", config.ListenAddr, config.WorkerPort) /*
* workerListener := fmt.Sprintf("tcp://%s:%d", config.ListenAddr, config.WorkerPort)
*/
} }