Skip to content
This repository was archived by the owner on Mar 10, 2023. It is now read-only.

Commit d630bf7

Browse files
wilsonianbalexellis
authored andcommitted
Serve SealedSecrets public key
Signed-off-by: Brandon Wilson <[email protected]>
1 parent b2afa30 commit d630bf7

File tree

4 files changed

+59
-3
lines changed

4 files changed

+59
-3
lines changed

dashboard/client/public/index.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
window.ALL_CLAIMS = '__ALL_CLAIMS__';
2121
window.GITHUB_APP_URL = '__GITHUB_APP_URL__';
2222
window.GITLAB_URL = '__GITLAB_URL__';
23+
window.PUBLIC_KEY_EXISTS = '__PUBLIC_KEY_EXISTS__';
2324
</script>
2425
</head>
2526

dashboard/client/src/components/NavBar/NavBar.jsx

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import {
1111
} from 'reactstrap';
1212
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
1313
import { faGithub, faGitlab } from '@fortawesome/free-brands-svg-icons';
14-
import { faSignOutAlt } from '@fortawesome/free-solid-svg-icons';
14+
import { faKey, faSignOutAlt } from '@fortawesome/free-solid-svg-icons';
1515

1616
class NavBarWithRouter extends Component {
1717
state = {
@@ -118,6 +118,18 @@ class NavBarWithRouter extends Component {
118118
</NavLink>
119119
</NavItem>
120120
}
121+
{ window.PUBLIC_KEY_EXISTS &&
122+
<NavItem>
123+
<NavLink
124+
className="py-3 px-3 px-md-2"
125+
href="dist/pub-cert.pem"
126+
title="Encrypt function secrets for use in your git repository"
127+
>
128+
<FontAwesomeIcon icon={faKey} className="mr-1" />
129+
Public Key
130+
</NavLink>
131+
</NavItem>
132+
}
121133
</Nav>
122134
<Nav navbar className="ml-auto">
123135
{ this.isLoggedIn() && this.createNavLink(

dashboard/dashboard_config.yml

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,34 @@ environment:
1616
# see https://github.com/settings/apps/
1717
# github_app_url: https://github.com/apps/o6s-io
1818
# Public URL for your GitLab instance
19-
# gitlab_url: https://gitlab.o6s.io/
19+
# gitlab_url: https://gitlab.o6s.io/
20+
# SealedSecrets public key
21+
# public_key: |
22+
# -----BEGIN CERTIFICATE-----
23+
# MIIErjCCApagAwIBAgIRAOpOnJ35KXJmoda4VjnxqgIwDQYJKoZIhvcNAQELBQAw
24+
# ADAeFw0yMDEwMjAyMzE5MzhaFw0zMDEwMTgyMzE5MzhaMAAwggIiMA0GCSqGSIb3
25+
# DQEBAQUAA4ICDwAwggIKAoICAQC1RNAnJC850lP00fWJVGs7y/AaWU08eitNmqgm
26+
# VkRg04baGLSOIwv5aMzHe68e1bZUAa3NzhL7lKEJdgU4+G0eidVjg4hngVvPfaCy
27+
# o6OYU+f9rTDTwOihwOu1rGBUrG42S8niWJpfDMmzyFgG/AZAJfiYOK6/FIP0JoZB
28+
# JQqorJvsmdrhve+LlwUlFIBj9cP5mWQ2OlrM49QV2rlauJfR8UEwQxsQYmxDrKxe
29+
# NltLrrsSVqqarcOCE7vHlnV+YoBK9CEAu4nCjCDV3B8fRI3ODoO5twAGJ21NeVKm
30+
# OeqgDm48lViol3Fn5iBEd1Xsp+HKG2aki7H8SkNMPvbJutt+9buhctMT1DZGfkf1
31+
# vfdYFEOQ0G8rnnYQa6hiVPwR/a1HQ0L3cSDgLCCk1O2bu69wQQDT+IdPK3HJMyWM
32+
# JgXnL3HdvuWB2/35/88pVn26tGtRLM3Ye6OqbDMpC8mvNPvKyyvwg4h+PEX5U09X
33+
# v7pJQiUCwp1bPcDGSifdN+pFvMx188G7clrLXwjW0Grvc1aXCvOM+0/ZFaxXm2DO
34+
# j0DrrvjwQy+v4DxNNjYd2n/6IJlA1ea0EV6VkS7eWhX44DU3ILwLhTo0r9TWye49
35+
# 7yPJjZsyM+tTKSEBxtQ59PFpvAYC6zBMbOtn5wbVFNLuiz78lVpcvJuEfl66QoME
36+
# yposYQIDAQABoyMwITAOBgNVHQ8BAf8EBAMCAAEwDwYDVR0TAQH/BAUwAwEB/zAN
37+
# BgkqhkiG9w0BAQsFAAOCAgEAnc5P1bXQFQXxF4+3xTsFll3JL1/b40UvnCPz8mUw
38+
# RioBFrpHp7w5ETcjGf9/ADzKx7k/ffzKPxQEiQj01Lsqy02TkQLwvWA5KXlY9OnJ
39+
# J+8IyJAbmnd6X0boMcKwtUc/vvrzkTP7gDthEX5y2kFJCCg/5k/d100U6E+1CN4h
40+
# 0tSEfzKfSYW8EUHv5r4PQfFgd7n+afEGw/XURhdNUdO0a5EyvzU9510+hCZM2uRJ
41+
# KpqaQZ7tPP/pFtziDHP9imlij2CfOP5IQn8zWzbAJUK5vM/mmEyW8sDGhYno2xJS
42+
# aRR3J1m2ieDPmat56J4hVCaLQLknEsLGhbEUdJGJTdA4m8L1dYbIh2E4Nwa/WUuz
43+
# IcyQ7cTLMwHnHtB6Z35PptdJ/0SnRLut8sgj36UMxP9/McGXxoBMGT5WGfJV0n16
44+
# eRCzbWDg8xkr5ZqTofoIHs9SXx7Dm1GM+aB+rvHgQDUlnarqbQyWclqbArAqtcFI
45+
# W3bt8vFpHympK9sKNRv0oGnMdT3NJCftdkF28aXnAESv0DzkzZxOKooesNe+j5nx
46+
# jHP/isiGskK0EdOVetJN+FuDo0Ys+Ev/d7vAyy32WIcnTfbJ7nAHnhvhPCDp05F3
47+
# aAgXn0ahlcFp/HqzyD+hxPKszH1NG0WXEXIhNBr+1MoGlwTJ+PIp9oY4wt5SoKcz
48+
# rl4=
49+
# -----END CERTIFICATE-----

dashboard/of-cloud-dashboard/handler.js

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,18 @@ module.exports = async (event, context) => {
7676
headers['Content-Type'] = 'application/json';
7777
} else if (/.*\.map/.test(path)) {
7878
headers['Content-Type'] = 'application/octet-stream';
79+
} else if (/^\/dist\/pub-cert.pem\/?$/.test(path)) {
80+
if (!process.env.public_key) {
81+
return context
82+
.status(404)
83+
.fail('Not found');
84+
}
85+
86+
headers['Content-Type'] = 'text/plain';
87+
return context
88+
.headers(headers)
89+
.status(200)
90+
.succeed(process.env.public_key);
7991
}
8092

8193
let contentPath = `${__dirname}${path}`;
@@ -129,7 +141,7 @@ module.exports = async (event, context) => {
129141
}
130142

131143
function replaceTokens(content, isSignedIn, claims) {
132-
const { base_href, public_url, pretty_url, query_pretty_url, github_app_url, gitlab_url } = process.env;
144+
const { base_href, public_url, pretty_url, query_pretty_url, github_app_url, gitlab_url, public_key } = process.env;
133145
let replaced = content
134146

135147
replaced = replaced.replace(/__BASE_HREF__/g, base_href);
@@ -140,6 +152,7 @@ function replaceTokens(content, isSignedIn, claims) {
140152
replaced = replaced.replace(/__ALL_CLAIMS__/g, claims);
141153
replaced = replaced.replace(/__GITHUB_APP_URL__/g, github_app_url || "");
142154
replaced = replaced.replace(/__GITLAB_URL__/g, gitlab_url || "");
155+
replaced = replaced.replace(/__PUBLIC_KEY_EXISTS__/g, public_key ? "true" : "");
143156

144157
return replaced
145158
}

0 commit comments

Comments
 (0)