Each client access to config seeder identifies by User-Agent.

Specification

User-Agent will be sent as header:

X-User-Agent: <component>[-<subcomponent>]/<version> (<os>)
X-Hostname: <hostname>
X-Host-Identification: <name> (<sha1>)

<component>: Typically ConfigSeederClient
<subcompnent>: Optional Subcomponent (e.g. Spring, Maven, ...)
<version>: Version of the component in use
<os>: Operating system used
<hostname>: Hostname of the host
<name>: Name under which this client should be  available in the statistics view
<sha1>: Unique identification of the system (may be mac address)

Examples:

X-User-Agent: ConfigSeederClient-Java/2.0.2 (Linux) 
X-User-Agent: ConfigSeederClient-Spring/2.0.3 (Windows)
X-User-Agent: ConfigSeederOsConnector/1.4.2  (Linux)

X-Hostname: miraculix

Hints

  • determine os: runtime.GOOS
  • determine hostname: os.Hostname()
  • calculate sha: sha256 := sha256.Sum256([]byte(s)) fmt.Printf("%x\n", sha256)

Task

  • Implement Default Case for Go-Client
  • Test with go-demo
  • Implement mechanism with which the connectors can define the required headers
  • Create task for connector-base
  • Create tasks for Kubernetes Connector
  • Create tasks for OS Connector
Edited by Christian Cavegn
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information