Commit Graph

28 Commits

Author SHA1 Message Date
StepSecurity Bot
2154c13865
Pin actions to commit SHA (#10204)
## Summary

This pull request is created by [Secure
Repo](https://app.stepsecurity.io/securerepo) at the request of @zwass.
Please merge the Pull Request to incorporate the requested changes.
Please tag @zwass on your message if you have any questions related to
the PR. You can also engage with the
[StepSecurity](https://github.com/step-security) team by tagging
@step-security-bot.

## Security Fixes

### Pinned Dependencies

GitHub Action tags and Docker tags are mutable. This poses a security
risk. GitHub's Security Hardening guide recommends pinning actions to
full length commit.

- [GitHub Security
Guide](https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions#using-third-party-actions)
- [The Open Source Security Foundation (OpenSSF) Security
Guide](https://github.com/ossf/scorecard/blob/main/docs/checks.md#pinned-dependencies)


## Feedback
For bug reports, feature requests, and general feedback; please create
an issue in
[step-security/secure-repo](https://github.com/step-security/secure-repo).
To create such PRs, please visit https://app.stepsecurity.io/securerepo.


Signed-off-by: StepSecurity Bot <bot@stepsecurity.io>
2023-02-28 17:55:38 -08:00
Eric
4fd1efe98a
Website: Add API to send signed CSR emails (#8408)
This pull request relies on the `mdm-gen-cert` command from
https://github.com/fleetdm/fleet/pull/8884.
Closes: https://github.com/fleetdm/fleet/issues/8223

Changes:
- Updated the deploy Fleet website workflow to:
   - Add Go as a dependency
   - Build the mdm-gen-cert binary in `/website/.tools/`
   - add the `/.tools/` folder to the Heroku app
- Added `deliver-apple-csr.js` -  an API that:
- can be called by making a `POST` request to
`/api/v1/deliver-apple-csr`
   - accepts `csr` as an input
- runs the `mdm-gen-cert` command with the `csr` set as an environment
variable
- returns an `invalidEmailDomain` response if the user's email domain is
in the array of banned email domains.
- saves the users organization and email address to the website's
database
- Sends an email to the requesting user's email address with the signed
CSR attached as a text file named `apple-apns-request.txt`
   - Posts a message to a channel in the Fleet Slack.
- Added a new model: `CertificateSigningRequests` that contains two
required attributes: `emailAddress` and `organization`
- Added a new email template `email-signed-csr-for-apns`
- Updated routes, policies, eslintrc, and rebuilt cloud-sdk


Before this can be merged, we will need to:
- [x] Add new config variables in Heroku
   - [x] `sails.config.custom.mdmVendorCertPem` 
   - [x] `sails.config.custom.mdmVendorKeyPem`
   - [x] `sails.config.custom.mdmVendorKeyPassphrase`
   - [x] `sails.config.custom.slackWebhookUrlForMDMSignups`
- [x] Add the `CertificateSigningRequests` model to the website's
database
2023-01-19 14:43:14 -06:00
Eric
47d43d5307
Website: fix failing GitHub workflows (#9285)
Changes:
- Updated the `build-static-content` script to use a GitHub API token
for requests if one is provided e.g., `sails run build-static-content
--githubAccessToken="foo"`
- Updated the `build-for-prod` npm script to run the
`build-static-content` script with a variable named `BUILD_SCRIPT_ARGS`.
- Updated the "Deploy Fleet website" and "Test Fleet website" workflows
to run the `build-for-prod` script with a GitHub API token
. .

Co-authored-by: Mike McNeil <mikermcneil@users.noreply.github.com>
2023-01-11 13:31:20 -06:00
Eric
a5ba469e41
update build-storybook step (#8503) 2022-10-31 14:02:29 -05:00
Eric
149a908b82
move build-storybook step (#8492) 2022-10-31 09:19:20 -05:00
Eric
c6698e242f
Website: Add storybook to Fleet website (#8203)
* Add build storybook to deploy website workflow

* add assets/storybook folder to .gitignore & .eslintIgnore

* Revert changes to website/.gitignore

* revert whitespace change

* Update deploy-fleet-website.yml
2022-10-28 19:48:14 -05:00
Michal Nicpon
56f3cb62ef
add concurrency to ci (#8271)
* add concurrency to ci

* add readme for workflows
2022-10-24 14:01:00 -06:00
Michal Nicpon
9056b22874
set default shell in workflows (#8108)
* wait for mysql in workflows
2022-10-07 09:43:56 -06:00
Guillaume Ross
e48fbad3ac
Adding the schema path to the fleet website deployment workflow (#8063) 2022-10-03 12:20:30 -04:00
dependabot[bot]
200ddfaaff
Bump actions/checkout from 2 to 3.0.2 (#7301)
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.0.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...2541b1294d2704b0964813337f33b291d3f8596b)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-31 07:44:22 -03:00
Eric
47a80ad483
Update deploy fleet website to run when an article has been updated (#6545) 2022-07-21 19:01:43 -05:00
Mike McNeil
0b7e07a9fb
Website: Ignore top level gitignore when deploying (#5549)
* Website: Ignore top level gitignore when deploying

* Update deploy-fleet-website.yml
2022-05-03 21:05:19 -05:00
dependabot[bot]
1cf551be51
Bump akhileshns/heroku-deploy from 3.6.8 to 3.12.12 (#5217)
Bumps [akhileshns/heroku-deploy](https://github.com/akhileshns/heroku-deploy) from 3.6.8 to 3.12.12.
- [Release notes](https://github.com/akhileshns/heroku-deploy/releases)
- [Commits](cdd8fc68da...79ef2ae4ff)

---
updated-dependencies:
- dependency-name: akhileshns/heroku-deploy
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-19 17:19:34 -07:00
Guillaume Ross
b94972351f
Adding permissions to some workflows (#4698)
* Adding permissions to docs.yml and integration.yml

* Update codeql-analysis.yml

Adding top level read permissions to codeql workflow

* Update codeql-analysis.yml

Adding manual dispatch to codeql - to be able to test it easier

* Update deploy-fleet-website.yml

Adding top level read permission + write in the job so it can push the website

* Update test-website.yml

test-website should only need read permissions on content.

* Update fleet-and-orbit.yml

Testing Fleet and Orbit should be fine with top level read access

* Update fleetctl-preview.yml

fleetctl-preview should be fine with just read access at top level

* Update push-osquery-perf-to-ecr.yml

ECR is out of github so read permissions should be enough

* Update semgrep-analysis.yml

semgrep should only need read

* Update test-packaging.yml

Should only need read permission - setting on top

* Update test.yml

Should not need any write access - setting to READ on top.

* Update deploy-fleet-website.yml

Removing git write permission - since this pushes to Heroku not GitHub

* Tweaked as per Zach's comments

Removed some useless restrictions (contents none on a public repo for example)

* Removed meaningless permissions

contents: none - this does not have any security advantage on a public repo
2022-03-25 14:19:42 -04:00
Guillaume Ross
62d3b9145f
4620 pin action dependencies (#4622)
* Update build-binaries.yaml

Pin action versions + add read only token to build-binaries.yaml

* Update codeql-analysis.yml

Pin dependencies with hash for codeql-analysis.yml

* Update deploy-fleet-website.yml

Pin dependencies in deploy-fleet-website.yml

* Update docs.yml

Pin dependencies for docs.yml

* Update fleet-and-orbit.yml

Pinning dependencies for fleet-and-orbit.yml

* Update generate-osqueryd-app-tar-gz.yml

Pin dependencies for generate-osqueryd-app-tar-gz.yml

* Pin dependencies in goreleaser workflows

Pinned dependencies in the 3 goreleaser workflows

* Update integration.yml

Pinned dependencies with hash

* Update pr-helm.yaml

Pinned dependencies with hash

* Update push-osquery-perf-to-ecr.yml

Pinned dependencies with a hash

* Update release-helm.yaml

Pinned one dependency with a hash

* Update semgrep-analysis.yml

Pinned dependencies with hashes

* Update test-go.yaml

Pinned dependencies with hash

* Update test-packaging.yml

Pinned dependencies with hashes

* Update test-website.yml

Pinned dependencies with hashes

* Update test.yml

Pinned dependencies with hashes
2022-03-16 15:42:28 -04:00
Zach Wasserman
b56c620007
Pin actions to commit (#3566) 2022-01-04 09:30:02 -08:00
Zach Wasserman
850d36543d
Filter GitHub actions triggers on file types (#3009)
Reduce the total amount of Actions running by only running actions
relevant to the changes.
2021-11-18 15:14:29 -08:00
Mike McNeil
5659ba92e4
Deploy compiled HTML to the remote even though it's in the gitignore. (#1709) 2021-08-17 20:08:25 -05:00
Mike McNeil
2da1da186d
Fix website deploy script to accomodate master=>main 2021-06-10 14:22:31 -05:00
Mike McNeil
5e991899b6
Update deploy-fleet-website.yml (#867) 2021-05-26 03:46:21 -05:00
Mike McNeil
d50b48e7c2
Absorb yaml queries into website, + stub /queries + /documentation (#812)
* Upgrade to get rid of REPL schmutz

* rename workflow to lessen ambiguity vs. markdown compilation of docs

* ensure lockfile makes it to fleetdm.com prod

* skip force git add of package-lock to avoid confusion for now. (reverts 4e7e23990c472e84f3f24391ef360a175f725609)

* rename build script (because now it won't always be markdown source files)

* update metadata to match prev commit

* change key name in generated sailsrc for consistency

* stub query library page

* used named params so others can tell what's up with the forcing

* expand comments

* expand comments

* intermediate commit- playing with inlining the guts from doctemplater

* stub basic docpage shell and a little page to preview that on

* Compile YAML and set up query library page

* clean sailsrc

* optimize build by running everything in parallel

* Add note about the fact that we don't even need to clone anything since we've consolidated it all into one repo now.  facepalm

* un-parallelize one bit that fails in CI if it's parallelized (it'll go away soon anyway)
2021-05-20 03:22:42 -05:00
Mike McNeil
56e143a14f
Compile markdown docs (#714)
* Brought in the mostly-unchanged stuff from Sails website- changed just enough to get it working

* inline beforeConvert and afterConvert, for readability

because it's better when you tell a story with the parts of the story in order

* trivial (change arg name for clarity)

* trivial (apply more up-to-date err callback convention)

* modernize some of the bits relying on reassigning arguments

* convert the rest of the way to async/await

* trivial

* just aesthetics

* remove reliance on app-level config

* mostly i'm doing this to remember how it works

* normalize better so this can be more flexible

* this makes it work (albeit needs a bit more fluffing)

* strip out more sails-specific stuff

* clean up menu files between runs, scrape off a bit more technical debt

* scrape out some more dead code

* use devDependencies for markdown compilation stuff since it won't be compiling at runtime

* stub script for compiling markdown content

* Fill in implementation of script, rename helper.

* add note about the non-markdown file problem

* tweak output paths for clarity

* Improve generated menu content and set up groundwork for being able to easily access it via config

* Use .sailsrc to hold onto menu content, so it's injected into config for easier access (rather than reading JSON files whenever needed)

* more explicit tmp filename, in case we forget how this works later

* fix typo in build script (missing .js extension)

* Stub query detail page and a dev route for developing it

http://localhost:2024/sandbox/example-query

* fix helper friendlyName

* Run compilation in series to avoid race condition in doc-templater when cloning from the same repo.  Add todos about sitemap and further menu data cleanup.

* make sandbox actually useful

* Help prevent accidental checking in of compiled HTML files.

* rename script and generated folder in partials/

* fix/expand script metadata
2021-05-09 23:48:59 -05:00
Mike McNeil
3d27cb0899
Update deploy-fleet-website.yml (#100)
* Update deploy-fleet-website.yml

w/ @noahtalerman

* Update deploy-fleet-website.yml
2020-12-04 15:49:22 -06:00
noahtalerman
71dfa18727
Fix for deploy-fleet-website GitHub action. (#99)
Fourth attempt to limit the "Deploy Fleet Website" workflow to only the fleetdm/fleet repository.
Add the $ character to the $GITHUB_REPOSITORY env variable.
2020-12-04 16:19:04 -05:00
noahtalerman
0d9cab345b
Llimit the "Deploy Fleet Website" workflow to only the fleetdm/fleet repo. (#98)
This is my third attempt. The second didn't work because I incorrectly formatted the workflow file.
2020-12-04 15:20:57 -05:00
noahtalerman
03c64da3a6
Add if condition to website deploy workflow and remove indent of subsequent lines. (#97)
Second attempt to limit the "Deploy Fleet Website" workflow to only the fleetdm/fleet repo.
2020-12-04 12:52:47 -05:00
noahtalerman
149b4eda42
Add if statement to website build workflow. (#95)
Should skip over website build workflow if the changes being pushed aren't to the master branch in the fleetdm/fleet repo.
2020-12-03 17:20:23 -05:00
Mike McNeil
27eae209fd
Move fleetdm.com into main Fleet repo (#83)
* rename dir

* no need to install website or docs from npm

At some point, would also be nice to be able to exclude assets/ as well, and to only install a pre-built version of Fleet's frontend code

* Bring in fleetdm.com website

From https://github.com/fleetdm/fleetdm.com as of https://github.com/fleetdm/fleetdm.com/releases/tag/v0.0.21

* add procfile for heroku

Using https://github.com/timanovsky/subdir-heroku-buildpack

* avoid getting anybody's hopes up

* Create deploy-fleet-website.yml (#82)

* Create deploy-fleet-website.yml

* Update deploy-fleet-website.yml

* Update deploy-fleet-website.yml

* Update deploy-fleet-website.yml

* update pjs with SPDX-like license expressions.  also fix repo URL

and remove package lock

* Update deploy-fleet-website.yml

* Update deploy-fleet-website.yml

* remove dummy uri

* Dissect deploy script

* Update deploy-fleet-website.yml

* workaround for eslintrc nesting issue

* lint fixes

* forgot the .js

* add per-commit git config

* Update deploy-fleet-website.yml

* might as well remove that

* cleanup

* connect w/ heroku app and have it actually push

* fix bug I introduced in 578a1a01ffb8404aae869e05005e30a6ba2b2a95

* Update deploy-fleet-website.yml

* Update deploy-fleet-website.yml

* Update deploy-fleet-website.yml

* Update deploy-fleet-website.yml

* the beauty, the glory, of javascript

* GH actions don't like "\n"

* Update deploy-fleet-website.yml

* restore \n chars from 0d45e568f693efba7d7072085bc98d72a482d9ae

hoping I was wrong in 0d45e568f693efba7d7072085bc98d72a482d9ae but see also https://github.community/t/what-is-the-correct-character-escaping-for-workflow-command-values-e-g-echo-xxxx/118465/5

* Update deploy-fleet-website.yml

* Update deploy-fleet-website.yml

* Update deploy-fleet-website.yml

* Update deploy-fleet-website.yml

* Update deploy-fleet-website.yml

* Update deploy-fleet-website.yml

* Update deploy-fleet-website.yml

* Update deploy-fleet-website.yml

* Update deploy-fleet-website.yml

* Update deploy-fleet-website.yml

* Update deploy-fleet-website.yml

* Update deploy-fleet-website.yml

* rename script to prevent duplicate building

* Configure the real website

* clean up

* a test of the deploy workflow

* add handbook to npmignore

* I guess you could call this fixing a typo

* point workflow at master branch

* now clearly bogus: this completely unused version string
2020-12-02 14:48:03 -06:00