Skip to content

Commit d165c7e

Browse files
committed
update docs for 1.3.0 release
1 parent d72c65e commit d165c7e

File tree

2 files changed

+57
-17
lines changed

2 files changed

+57
-17
lines changed

NARRATIVE.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## Context
44

5-
For many industries, there is a necessity to develop or deploy software systems on disconnectedor air-gappedinfrastructure. Banking, Energy, Government and Aviation are examples of industries that need such protection.
5+
For many industries, there is a necessity to develop or deploy software systems on disconnected, or "air-gapped" infrastructure. This pattern is observed in Public Sector, Banking, Energy, SCADA, Defense, Justice Department, Telecommunications, Aviation and Payment Processing industries where such protection is desired.
66

77
The need usually comes from protecting data that resides on the air-gapped system, and thus the protection of the system itself is necessary. However, software and software development are constantly changing – so much so that keeping static air-gapped systems is a higher risk than the reward of newer software. We know then, custom and COTS software must be eventually updated and the recent rise of Agile and DevOps pushes those update cycles to an ever-faster iteration time.
88

@@ -37,7 +37,7 @@ Because Bridgr is to be a trusted tool in bringing data to potentially sensitive
3737
- WIP: Prefixing a PR title with `WIP` causes the PR to not be mergeable until the developer removes WIP. This is a useful GitLab feature that I miss in stock GitHub.
3838
- Dependabot: This service daily checks the code repository for libraries that the application uses for vulnerabilities and creates a new issue and PR to address and fix the vulnerability. In the case of Bridgr, it reads the `go.mod` file to identify libraries being used but can support other languages to varying degrees of integration (on a JavaScript project I have, it can even make a PR with the fixed library version in package.json - all I have to do is click “Merge”).
3939
- Codecov: This is a code coverage analysis tool, using the results from unit tests. Badges are available to put in the README so that users/developers can see right off what level of quality code to expect. Additional integration comes from evaluating PRs on each commit, and disallowing merging if there is a drop or regression in the overall coverage OR in the code modified by the PR.
40-
- CodeScene: This is a tool that has been developed from the book [*Your code as a crime scene*](https://pragprog.com/book/atcrime/code-as-a-crime-scene). It uses metadata from the git repository to identify and prioritize hidden risks, suggest improvements and make early warnings of delivery risk before issues manifest. It is predictive behavioral analysis of how an application is being developed using temporal history rather than static code analysis (which is a snapshot in time). This is a unique and otherwise paid service that is free for FOSS projects. This provides product owner guidance for where to utilize resources most effectively and for developers to have situational awareness - such as where (in the code) to prioritize code reviews. See <https://empear.com/docs/CodeSceneUseCasesAndRoles.pdf> for much more detail.
40+
- CodeScene: This is a tool that has been developed from the book [_Your code as a crime scene_](https://pragprog.com/book/atcrime/code-as-a-crime-scene). It uses metadata from the git repository to identify and prioritize hidden risks, suggest improvements and make early warnings of delivery risk before issues manifest. It is predictive behavioral analysis of how an application is being developed using temporal history rather than static code analysis (which is a snapshot in time). This is a unique and otherwise paid service that is free for FOSS projects. This provides product owner guidance for where to utilize resources most effectively and for developers to have situational awareness - such as where (in the code) to prioritize code reviews. See <https://empear.com/docs/CodeSceneUseCasesAndRoles.pdf> for much more detail.
4141

4242
The above project management and tooling is intended create as much transparency, developer accessibility and trust as possible for a tool that relies on these traits for acceptance.
4343

README.md

+55-15
Original file line numberDiff line numberDiff line change
@@ -42,26 +42,62 @@ By default, Bridgr will create a `packages` directory with all artifacts gathere
4242

4343
Also by default, Bridgr will look for a `bridge.yml` manifest file in the directory where it is being run. This can be overridden with the `-c` option to bridgr to specify a configuration file elsewhere.
4444

45-
``` shell
45+
```shell
4646
./bridgr -c path/to/another/bridge.yml
4747
```
4848

4949
To only run one of the repository types, simply give that type after any configuration options. As an example, to only run the Files type, execute Bridgr like this:
5050

51-
``` shell
51+
```shell
5252
./bridgr -v files
5353
```
5454

5555
Additional command line options include:
5656

57-
| Option | Meaning |
58-
| ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
59-
| -v / --verbose | Verbose Output |
60-
| -n / --dry-run | Dry-run. Only do setup, don't fetch artifacts |
61-
| -c / --config | Specify an alternate configuration file |
62-
| --version | Print the version of Bridgr and exit. The output of stderr can be redirected to /dev/null to get just the version string. |
63-
| -H / --host | Run Bridgr in "hosting" mode. This mode does no downloading of artifacts, but makes Bridgr into a simple HTTP server. See `Hosting` for more detail |
64-
| -l / --listen | The listen address for Bridgr in hosting mode. This is only effective when coupled with the `-H` flag. Default is `:8080` |
57+
| Option | Meaning |
58+
| -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
59+
| -v / --verbose | Verbose Output |
60+
| -n / --dry-run | Dry-run. Only do setup, don't fetch artifacts |
61+
| -c / --config | Specify an alternate configuration file |
62+
| --version | Print the version of Bridgr and exit. The output of stderr can be redirected to /dev/null to get just the version string. |
63+
| -H / --host | Run Bridgr in "hosting" mode. This mode does no downloading of artifacts, but makes Bridgr into a simple HTTP server. See `Hosting` for more detail |
64+
| -l / --listen | The listen address for Bridgr in hosting mode. This is only effective when coupled with the `-H` flag. Default is `:8080` |
65+
66+
### Artifacts requiring authentication
67+
68+
Bridgr support getting authenticated artifacts for `Files`, `Docker` and `Git`. Sensitive credential information is passed to Bridgr with environment variables. It does not support putting credentials in the configuration file because it risks users comitting these credentials into version control. Bridgr intends to promote good credential hygene.
69+
70+
Providing credentials follows a pattern of environment variable naming
71+
72+
- Username -> `BRIDGR_[HOST]_USER`
73+
- Password -> `BRIDGR_[HOST]_PASS`
74+
- API Token -> `BRIDGR_[HOST]_TOKEN`
75+
76+
Only one of Password or Token can be given. If both are provided, token will override.
77+
78+
The `[HOST]` portion of the environment variable above should be the hostname of the URL being fetched, converted to uppercase and `.` replaced with `_`. This is most easily shown with examples.
79+
80+
Fetching authentication protected docker hub image:
81+
82+
```shell
83+
BRIDGR_DOCKER_IO_USER=user BRIDGR_DOCKER_IO_PASS=secret bridgr docker
84+
```
85+
86+
In this case we have provided a username (user) and password (secret) for the default docker registry (docker.io). When the docker worker is run, and any images are specified from docker.io, bridgr will look for these two variables for credential information.
87+
88+
Another example for files:
89+
90+
```shell
91+
BRIDGR_PROTECTED_MYSERVER_COM_USER=user BRIDGR_PROTECTED_MYSERVER_COM_PASS=secret bridgr files
92+
```
93+
94+
And, finally for git - but this time showing a token (typical with Github and Gitlab):
95+
96+
```shell
97+
BRIDGR_GITHUB_COM_TOKEN=abcdefg123456789 bridgr git
98+
```
99+
100+
In this case, we don't need to specify the `_USER` part of the credential, because the git worker assumes a username of `git`, and Github or Gitlab just need it to _not_ be blank. The worker does this for you.
65101

66102
## Hosting mode
67103

@@ -104,18 +140,21 @@ Using new (as of go 1.11) [modules-style](https://github.com/golang/go/wiki/Modu
104140
Project structure following [these guidelines](https://github.com/golang-standards/project-layout)
105141
Example project showing [CI pipeline](https://gitlab.com/pantomath-io/demo-tools)
106142

107-
We will use the following libraries to do heavy lifting:
143+
Significant Go modules used by `Bridgr`:
108144

109145
- go-git
110146
- docker.io/go-docker
111-
- yaml.v2
147+
- yaml.v3
112148
- vfsgen
113149

114150
Potential for schema definition/validation of the YAML config file: [https://github.com/rjbs/rx](https://github.com/rjbs/rx)
115151
Potential library for creating iso9660 (ISO) files [https://github.com/kdomanski/iso9660](https://github.com/kdomanski/iso9660)
116152

117153
## Release History
118154

155+
- 1.3.0
156+
- Add authentication support
157+
- Update to Go version 1.13
119158
- 1.2.1
120159
- Fixes for usability bugs
121160
- 1.2.0
@@ -134,19 +173,20 @@ Potential library for creating iso9660 (ISO) files [https://github.com/kdomanski
134173

135174
Ian Martin – [email protected]
136175

137-
Distributed under the MIT license. See ``LICENSE`` for more information.
176+
Distributed under the MIT license. See `LICENSE` for more information.
138177

139178
[https://github.com/aztechian/bridgr](https://github.com/aztechian/)
140179

141180
## Contributing
142181

143-
1. Fork it (<https://github.com/aztechian/bridgr/fork>)
182+
1. [Fork it](https://github.com/aztechian/bridgr/fork)
144183
2. Create your feature branch (`git checkout -b feature/fooBar`)
145184
3. Commit your changes (`git commit -am 'Add some fooBar'`)
146-
4. Push to the branch (`git push -u origin feature/fooBar`)
185+
4. Push to the branch (`git push -u origin HEAD`)
147186
5. Create a new Pull Request
148187

149188
<!-- Markdown link & img dfn's -->
189+
150190
[gh-downloads]: https://img.shields.io/github/downloads/aztechian/bridgr/total.svg
151191
[gh-dl-url]: releases/
152192
[license]: https://img.shields.io/github/license/aztechian/bridgr

0 commit comments

Comments
 (0)