Merge remote-tracking branch 'origin/main' into nixidy
@@ -10,7 +10,7 @@ spec:
|
||||
namespace: idp
|
||||
sources:
|
||||
- repoURL: https://charts.bitnami.com/bitnami
|
||||
targetRevision: 18.3.4
|
||||
targetRevision: 24.0.2
|
||||
chart: keycloak
|
||||
helm:
|
||||
valueFiles:
|
||||
|
||||
@@ -90,12 +90,12 @@ spec:
|
||||
ingress:
|
||||
enabled: true
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: letsencrypt-staging
|
||||
cert-manager.io/cluster-issuer: letsencrypt-production
|
||||
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
||||
atlantis.oceanbox.io/expose: internal
|
||||
ingressClassName: nginx
|
||||
hosts:
|
||||
- host: collector.adm.oceanbox.io
|
||||
- host: opentelemetry-collector.adm.oceanbox.io
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
@@ -103,4 +103,4 @@ spec:
|
||||
tls:
|
||||
- secretName: collector-tls
|
||||
hosts:
|
||||
- collector.adm.oceanbox.io
|
||||
- opentelemetry-collector.adm.oceanbox.io
|
||||
|
||||
@@ -11,6 +11,17 @@ init:
|
||||
enabled: false
|
||||
image: ubuntu:rolling
|
||||
command: ["/bin/sh", "-c", "true"]
|
||||
env:
|
||||
- name: LOG_LEVEL
|
||||
value: "3"
|
||||
- name: APP_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.name
|
||||
- name: APP_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.namespace
|
||||
imagePullSecrets:
|
||||
- name: gitlab-pull-secret
|
||||
nameOverride: ""
|
||||
|
||||
@@ -17,6 +17,14 @@ init:
|
||||
env:
|
||||
- name: LOG_LEVEL
|
||||
value: "3"
|
||||
- name: APP_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.name
|
||||
- name: APP_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.namespace
|
||||
|
||||
imagePullSecrets:
|
||||
- name: gitlab-pull-secret
|
||||
|
||||
@@ -11,6 +11,17 @@ init:
|
||||
enabled: false
|
||||
image: ubuntu:rolling
|
||||
command: ["/bin/sh", "-c", "true"]
|
||||
env:
|
||||
- name: LOG_LEVEL
|
||||
value: "3"
|
||||
- name: APP_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.name
|
||||
- name: APP_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.namespace
|
||||
imagePullSecrets:
|
||||
- name: gitlab-pull-secret
|
||||
nameOverride: ""
|
||||
|
||||
@@ -11,6 +11,17 @@ init:
|
||||
enabled: false
|
||||
image: ubuntu:rolling
|
||||
command: ["/bin/sh", "-c", "true"]
|
||||
env:
|
||||
- name: LOG_LEVEL
|
||||
value: "3"
|
||||
- name: APP_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.name
|
||||
- name: APP_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.namespace
|
||||
imagePullSecrets:
|
||||
- name: gitlab-pull-secret
|
||||
nameOverride: ""
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
dependencies:
|
||||
- name: redis
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
version: 20.1.7
|
||||
digest: sha256:9c9be148366bb3d50f7394ba5a33e1a00a087b5ed61d2bcf1faec9b369e76582
|
||||
generated: "2024-11-16T14:23:53.686487149+01:00"
|
||||
@@ -38,8 +38,7 @@ spec:
|
||||
containerPort: {{ .Values.service.port }}
|
||||
protocol: TCP
|
||||
env:
|
||||
- name: LOG_LEVEL
|
||||
value: "3"
|
||||
{{- toYaml .Values.env | nindent 12 }}
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /
|
||||
|
||||
@@ -17,6 +17,14 @@ init:
|
||||
env:
|
||||
- name: LOG_LEVEL
|
||||
value: "3"
|
||||
- name: APP_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.name
|
||||
- name: APP_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.namespace
|
||||
|
||||
imagePullSecrets:
|
||||
- name: gitlab-pull-secret
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
apiVersion: kyverno.io/v1
|
||||
kind: ClusterPolicy
|
||||
metadata:
|
||||
annotations:
|
||||
policies.kyverno.io/category: Sample
|
||||
policies.kyverno.io/description: 'Access dataprotection keys from Azure Key Vault'
|
||||
creationTimestamp: "2024-01-15T11:58:24Z"
|
||||
name: sync-keyvault-secrets
|
||||
spec:
|
||||
admission: true
|
||||
background: true
|
||||
generateExisting: true
|
||||
rules:
|
||||
- generate:
|
||||
apiVersion: v1
|
||||
clone:
|
||||
name: azure-keyvault
|
||||
namespace: sorcerer
|
||||
kind: Secret
|
||||
name: azure-keyvault
|
||||
namespace: '{{request.object.metadata.name}}'
|
||||
synchronize: true
|
||||
match:
|
||||
any:
|
||||
- resources:
|
||||
kinds:
|
||||
- Namespace
|
||||
names:
|
||||
- "*-sorcerer"
|
||||
name: sync-keyvault-secrets
|
||||
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
apiVersion: kyverno.io/v1
|
||||
kind: ClusterPolicy
|
||||
metadata:
|
||||
annotations:
|
||||
policies.kyverno.io/category: Sample
|
||||
policies.kyverno.io/description: 'Secrets like registry credentials often need
|
||||
to exist in multiple Namespaces so Pods there have access. Manually duplicating
|
||||
those Secrets is time consuming and error prone. This policy will copy a Secret
|
||||
called `regcred` which exists in the `default` Namespace to new Namespaces when
|
||||
they are created. It will also push updates to the copied Secrets should the
|
||||
source Secret be changed. '
|
||||
creationTimestamp: "2024-01-15T11:58:24Z"
|
||||
name: sync-oceanbox-regcred
|
||||
spec:
|
||||
admission: true
|
||||
background: true
|
||||
generateExisting: true
|
||||
rules:
|
||||
- generate:
|
||||
apiVersion: v1
|
||||
clone:
|
||||
# name: oceanbox-regcred
|
||||
name: gitlab-pull-secret
|
||||
namespace: default
|
||||
kind: Secret
|
||||
# name: oceanbox-regcred
|
||||
name: gitlab-pull-secret
|
||||
namespace: '{{request.object.metadata.name}}'
|
||||
synchronize: true
|
||||
exclude:
|
||||
any:
|
||||
- resources:
|
||||
kinds:
|
||||
- Namespace
|
||||
names:
|
||||
- "vcluster-*"
|
||||
match:
|
||||
any:
|
||||
- resources:
|
||||
kinds:
|
||||
- Namespace
|
||||
name: sync-oceanbox-regcred
|
||||
|
||||
|
||||
@@ -25,6 +25,11 @@ spec:
|
||||
- "*-rabbitmq"
|
||||
annotations:
|
||||
kyverno/clone: "true"
|
||||
exclude:
|
||||
any:
|
||||
- resources:
|
||||
annotations:
|
||||
vcluster.loft.sh/controlled-by: secret/v1/GenericImport
|
||||
- name: sync-redis-secret
|
||||
generate:
|
||||
apiVersion: v1
|
||||
@@ -44,6 +49,11 @@ spec:
|
||||
- "*-redis"
|
||||
annotations:
|
||||
kyverno/clone: "true"
|
||||
exclude:
|
||||
any:
|
||||
- resources:
|
||||
annotations:
|
||||
vcluster.loft.sh/controlled-by: secret/v1/GenericImport
|
||||
- name: sync-archmaester-secret
|
||||
generate:
|
||||
apiVersion: v1
|
||||
@@ -63,6 +73,11 @@ spec:
|
||||
- "*-db-superuser"
|
||||
annotations:
|
||||
kyverno/clone: "true"
|
||||
exclude:
|
||||
any:
|
||||
- resources:
|
||||
annotations:
|
||||
vcluster.loft.sh/controlled-by: secret/v1/GenericImport
|
||||
- name: sync-archmaester-replication-secret
|
||||
generate:
|
||||
apiVersion: v1
|
||||
@@ -82,6 +97,11 @@ spec:
|
||||
- prod-archmeister-replication
|
||||
annotations:
|
||||
kyverno/clone: "true"
|
||||
exclude:
|
||||
any:
|
||||
- resources:
|
||||
annotations:
|
||||
vcluster.loft.sh/controlled-by: secret/v1/GenericImport
|
||||
- name: sync-archmaester-ca
|
||||
generate:
|
||||
apiVersion: v1
|
||||
@@ -101,11 +121,8 @@ spec:
|
||||
- prod-archmeister-ca
|
||||
annotations:
|
||||
kyverno/clone: "true"
|
||||
# exclude:
|
||||
# any:
|
||||
# - resources:
|
||||
# kinds:
|
||||
# - Secret
|
||||
# selector:
|
||||
# matchLabels:
|
||||
# generate.kyverno.io/clone-source: ""
|
||||
exclude:
|
||||
any:
|
||||
- resources:
|
||||
annotations:
|
||||
vcluster.loft.sh/controlled-by: secret/v1/GenericImport
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
apiVersion: kyverno.io/v1
|
||||
kind: ClusterPolicy
|
||||
metadata:
|
||||
annotations:
|
||||
policies.kyverno.io/category: Sample
|
||||
policies.kyverno.io/description: 'Access dataprotection keys from Azure Key Vault'
|
||||
creationTimestamp: "2024-01-15T11:58:24Z"
|
||||
name: sync-keyvault-secrets
|
||||
spec:
|
||||
admission: true
|
||||
background: true
|
||||
generateExisting: true
|
||||
rules:
|
||||
- generate:
|
||||
apiVersion: v1
|
||||
clone:
|
||||
name: azure-keyvault
|
||||
namespace: atlantis
|
||||
kind: Secret
|
||||
name: azure-keyvault
|
||||
namespace: '{{request.object.metadata.name}}'
|
||||
synchronize: true
|
||||
match:
|
||||
any:
|
||||
- resources:
|
||||
kinds:
|
||||
- Namespace
|
||||
names:
|
||||
- "*-atlantis"
|
||||
name: sync-keyvault-secrets
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ metadata:
|
||||
they are created. It will also push updates to the copied Secrets should the
|
||||
source Secret be changed. '
|
||||
creationTimestamp: "2024-01-15T11:58:24Z"
|
||||
name: sync-oceanbox-regcred
|
||||
name: sync-regcred
|
||||
spec:
|
||||
admission: true
|
||||
background: true
|
||||
@@ -30,10 +30,8 @@ spec:
|
||||
exclude:
|
||||
any:
|
||||
- resources:
|
||||
kinds:
|
||||
- Namespace
|
||||
names:
|
||||
- "vcluster-*"
|
||||
annotations:
|
||||
vcluster.loft.sh/controlled-by: secret/v1/GenericImport
|
||||
match:
|
||||
any:
|
||||
- resources:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
apiVersion: cilium.io/v2
|
||||
kind: CiliumNetworkPolicy
|
||||
kind: CiliumClusterwideNetworkPolicy
|
||||
metadata:
|
||||
name: allow-atlantis-services
|
||||
namespace: {{ .Release.Namespace }}
|
||||
@@ -15,12 +15,12 @@ spec:
|
||||
- matchLabels:
|
||||
k8s:io.kubernetes.pod.namespace: {{ .Values.tracing.namespace | default "otel" }}
|
||||
- toFQDNs:
|
||||
- matchName: '*.oceanbox.io'
|
||||
- matchName: api.github.com
|
||||
- matchName: dapr.github.io
|
||||
- matchName: gitlab.com
|
||||
- matchPattern: '*.gitlab.com'
|
||||
- matchPattern: "*.k1.itpartner.no"
|
||||
- matchName: analytics.loft.rocks
|
||||
# - matchName: gitlab.com
|
||||
# - matchName: api.github.com
|
||||
- matchPattern: "*.k1.itpartner.no"
|
||||
- matchPattern: '*.oceanbox.io'
|
||||
# - matchPattern: '*.gitlab.com'
|
||||
endpointSelector:
|
||||
matchLabels: {}
|
||||
|
||||
@@ -7,7 +7,6 @@ spec:
|
||||
egress:
|
||||
- toFQDNs:
|
||||
- matchName: oceanbox.io
|
||||
- matchName: hubble.srv.oceanbox.io
|
||||
- matchPattern: "*oceanbox.io"
|
||||
- matchPattern: "*.oceanbox.io"
|
||||
|
||||
|
||||
@@ -14,3 +14,15 @@ spec:
|
||||
- ports:
|
||||
- port: "9070"
|
||||
protocol: TCP
|
||||
---
|
||||
apiVersion: cilium.io/v2
|
||||
kind: CiliumNetworkPolicy
|
||||
metadata:
|
||||
name: addons-to-remote-node
|
||||
namespace: csi-addons-system
|
||||
spec:
|
||||
description: remote node
|
||||
egress:
|
||||
- toEntities:
|
||||
- remote-node
|
||||
endpointSelector: {}
|
||||
|
||||
@@ -3,8 +3,9 @@
|
||||
applications.xxx = {
|
||||
resources = {
|
||||
ciliumClusterwideNetworkPolicies = {
|
||||
xxx.spec = {
|
||||
};
|
||||
xxx.spec =
|
||||
{
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -6,4 +6,4 @@ spec:
|
||||
tracing:
|
||||
samplingRate: "1"
|
||||
zipkin:
|
||||
endpointAddress: "http://opentelemetry-collector.otel:9411/api/v2/spans"
|
||||
endpointAddress: "http://opentelemetry-collector.otel.svc.cluster.local:9411/api/v2/spans"
|
||||
|
||||
@@ -91,6 +91,7 @@ staticClients:
|
||||
- 'https://stig-atlantis.dev.oceanbox.io/signin-oidc'
|
||||
- 'https://simkir-atlantis.dev.oceanbox.io/signin-oidc'
|
||||
- 'https://atlantis.local.oceanbox.io:8080/signin-oidc'
|
||||
- 'https://atlantis.local.oceanbox.io:8085/signin-oidc'
|
||||
name: 'Atlantis dev'
|
||||
secret: 3QjfSPmAemjn34XVA2o1fvoS7I4gKvOR
|
||||
- id: petimeter
|
||||
@@ -119,6 +120,8 @@ staticClients:
|
||||
- 'https://jonas-sorcerer.ekman.oceanbox.io/signin-oidc'
|
||||
- 'https://stig-sorcerer.ekman.oceanbox.io/signin-oidc'
|
||||
- 'https://simkir-sorcerer.ekman.oceanbox.io/signin-oidc'
|
||||
- 'https://sorcerer.local.oceanbox.io:8080/signin-oidc'
|
||||
- 'https://sorcerer.local.oceanbox.io:8085/signin-oidc'
|
||||
name: 'Sorcerer dev'
|
||||
secret: cyrgDr1UzhQrJn8nRVqEt9BJ9mLk3OBy
|
||||
- id: archmeister
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"version": 1,
|
||||
"isRoot": true,
|
||||
"tools": {
|
||||
"fable": {
|
||||
"version": "3.6.1",
|
||||
"commands": [
|
||||
"fable"
|
||||
]
|
||||
},
|
||||
"femto": {
|
||||
"version": "0.11.0",
|
||||
"commands": [
|
||||
"femto"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,355 @@
|
||||
build/client/*
|
||||
build/test/*
|
||||
!build/test/__snapshots__
|
||||
dist/
|
||||
|
||||
## Ignore Visual Studio temporary files, build results, and
|
||||
## files generated by popular Visual Studio add-ons.
|
||||
##
|
||||
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
|
||||
|
||||
# User-specific files
|
||||
*.rsuser
|
||||
*.suo
|
||||
*.user
|
||||
*.userosscache
|
||||
*.sln.docstates
|
||||
|
||||
# User-specific files (MonoDevelop/Xamarin Studio)
|
||||
*.userprefs
|
||||
|
||||
# Mono auto generated files
|
||||
mono_crash.*
|
||||
|
||||
# Build results
|
||||
[Dd]ebug/
|
||||
[Dd]ebugPublic/
|
||||
[Rr]elease/
|
||||
[Rr]eleases/
|
||||
x64/
|
||||
x86/
|
||||
[Aa][Rr][Mm]/
|
||||
[Aa][Rr][Mm]64/
|
||||
bld/
|
||||
[Bb]in/
|
||||
[Oo]bj/
|
||||
[Ll]og/
|
||||
[Ll]ogs/
|
||||
|
||||
# Visual Studio 2015/2017 cache/options directory
|
||||
.vs/
|
||||
# Uncomment if you have tasks that create the project's static files in wwwroot
|
||||
#wwwroot/
|
||||
|
||||
# Visual Studio 2017 auto generated files
|
||||
Generated\ Files/
|
||||
|
||||
# MSTest test Results
|
||||
[Tt]est[Rr]esult*/
|
||||
[Bb]uild[Ll]og.*
|
||||
|
||||
# NUnit
|
||||
*.VisualState.xml
|
||||
TestResult.xml
|
||||
nunit-*.xml
|
||||
|
||||
# Build Results of an ATL Project
|
||||
[Dd]ebugPS/
|
||||
[Rr]eleasePS/
|
||||
dlldata.c
|
||||
|
||||
# Benchmark Results
|
||||
BenchmarkDotNet.Artifacts/
|
||||
|
||||
# .NET Core
|
||||
project.lock.json
|
||||
project.fragment.lock.json
|
||||
artifacts/
|
||||
|
||||
# StyleCop
|
||||
StyleCopReport.xml
|
||||
|
||||
# Files built by Visual Studio
|
||||
*_i.c
|
||||
*_p.c
|
||||
*_h.h
|
||||
*.ilk
|
||||
*.meta
|
||||
*.obj
|
||||
*.iobj
|
||||
*.pch
|
||||
*.pdb
|
||||
*.ipdb
|
||||
*.pgc
|
||||
*.pgd
|
||||
*.rsp
|
||||
*.sbr
|
||||
*.tlb
|
||||
*.tli
|
||||
*.tlh
|
||||
*.tmp
|
||||
*.tmp_proj
|
||||
*_wpftmp.csproj
|
||||
*.log
|
||||
*.vspscc
|
||||
*.vssscc
|
||||
.builds
|
||||
*.pidb
|
||||
*.svclog
|
||||
*.scc
|
||||
|
||||
# Chutzpah Test files
|
||||
_Chutzpah*
|
||||
|
||||
# Visual C++ cache files
|
||||
ipch/
|
||||
*.aps
|
||||
*.ncb
|
||||
*.opendb
|
||||
*.opensdf
|
||||
*.sdf
|
||||
*.cachefile
|
||||
*.VC.db
|
||||
*.VC.VC.opendb
|
||||
|
||||
# Visual Studio profiler
|
||||
*.psess
|
||||
*.vsp
|
||||
*.vspx
|
||||
*.sap
|
||||
|
||||
# Visual Studio Trace Files
|
||||
*.e2e
|
||||
|
||||
# TFS 2012 Local Workspace
|
||||
$tf/
|
||||
|
||||
# Guidance Automation Toolkit
|
||||
*.gpState
|
||||
|
||||
# ReSharper is a .NET coding add-in
|
||||
_ReSharper*/
|
||||
*.[Rr]e[Ss]harper
|
||||
*.DotSettings.user
|
||||
|
||||
# TeamCity is a build add-in
|
||||
_TeamCity*
|
||||
|
||||
# DotCover is a Code Coverage Tool
|
||||
*.dotCover
|
||||
|
||||
# AxoCover is a Code Coverage Tool
|
||||
.axoCover/*
|
||||
!.axoCover/settings.json
|
||||
|
||||
# Visual Studio code coverage results
|
||||
*.coverage
|
||||
*.coveragexml
|
||||
|
||||
# NCrunch
|
||||
_NCrunch_*
|
||||
.*crunch*.local.xml
|
||||
nCrunchTemp_*
|
||||
|
||||
# MightyMoose
|
||||
*.mm.*
|
||||
AutoTest.Net/
|
||||
|
||||
# Web workbench (sass)
|
||||
.sass-cache/
|
||||
|
||||
# Installshield output folder
|
||||
[Ee]xpress/
|
||||
|
||||
# DocProject is a documentation generator add-in
|
||||
DocProject/buildhelp/
|
||||
DocProject/Help/*.HxT
|
||||
DocProject/Help/*.HxC
|
||||
DocProject/Help/*.hhc
|
||||
DocProject/Help/*.hhk
|
||||
DocProject/Help/*.hhp
|
||||
DocProject/Help/Html2
|
||||
DocProject/Help/html
|
||||
|
||||
# Click-Once directory
|
||||
publish/
|
||||
|
||||
# Publish Web Output
|
||||
*.[Pp]ublish.xml
|
||||
*.azurePubxml
|
||||
# Note: Comment the next line if you want to checkin your web deploy settings,
|
||||
# but database connection strings (with potential passwords) will be unencrypted
|
||||
*.pubxml
|
||||
*.publishproj
|
||||
|
||||
# Microsoft Azure Web App publish settings. Comment the next line if you want to
|
||||
# checkin your Azure Web App publish settings, but sensitive information contained
|
||||
# in these scripts will be unencrypted
|
||||
PublishScripts/
|
||||
|
||||
# NuGet Packages
|
||||
*.nupkg
|
||||
# NuGet Symbol Packages
|
||||
*.snupkg
|
||||
# The packages folder can be ignored because of Package Restore
|
||||
**/[Pp]ackages/*
|
||||
# except build/, which is used as an MSBuild target.
|
||||
!**/[Pp]ackages/build/
|
||||
# Uncomment if necessary however generally it will be regenerated when needed
|
||||
#!**/[Pp]ackages/repositories.config
|
||||
# NuGet v3's project.json files produces more ignorable files
|
||||
*.nuget.props
|
||||
*.nuget.targets
|
||||
|
||||
# Microsoft Azure Build Output
|
||||
csx/
|
||||
*.build.csdef
|
||||
|
||||
# Microsoft Azure Emulator
|
||||
ecf/
|
||||
rcf/
|
||||
|
||||
# Windows Store app package directories and files
|
||||
AppPackages/
|
||||
BundleArtifacts/
|
||||
Package.StoreAssociation.xml
|
||||
_pkginfo.txt
|
||||
*.appx
|
||||
*.appxbundle
|
||||
*.appxupload
|
||||
|
||||
# Visual Studio cache files
|
||||
# files ending in .cache can be ignored
|
||||
*.[Cc]ache
|
||||
# but keep track of directories ending in .cache
|
||||
!?*.[Cc]ache/
|
||||
|
||||
# Others
|
||||
ClientBin/
|
||||
~$*
|
||||
*~
|
||||
*.dbmdl
|
||||
*.dbproj.schemaview
|
||||
*.jfm
|
||||
*.pfx
|
||||
*.publishsettings
|
||||
orleans.codegen.cs
|
||||
|
||||
# Including strong name files can present a security risk
|
||||
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
|
||||
#*.snk
|
||||
|
||||
# Since there are multiple workflows, uncomment next line to ignore bower_components
|
||||
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
|
||||
#bower_components/
|
||||
|
||||
# RIA/Silverlight projects
|
||||
Generated_Code/
|
||||
|
||||
# Backup & report files from converting an old project file
|
||||
# to a newer Visual Studio version. Backup files are not needed,
|
||||
# because we have git ;-)
|
||||
_UpgradeReport_Files/
|
||||
Backup*/
|
||||
UpgradeLog*.XML
|
||||
UpgradeLog*.htm
|
||||
ServiceFabricBackup/
|
||||
*.rptproj.bak
|
||||
|
||||
# SQL Server files
|
||||
*.mdf
|
||||
*.ldf
|
||||
*.ndf
|
||||
|
||||
# Business Intelligence projects
|
||||
*.rdl.data
|
||||
*.bim.layout
|
||||
*.bim_*.settings
|
||||
*.rptproj.rsuser
|
||||
*- [Bb]ackup.rdl
|
||||
*- [Bb]ackup ([0-9]).rdl
|
||||
*- [Bb]ackup ([0-9][0-9]).rdl
|
||||
|
||||
# Microsoft Fakes
|
||||
FakesAssemblies/
|
||||
|
||||
# GhostDoc plugin setting file
|
||||
*.GhostDoc.xml
|
||||
|
||||
# Node.js Tools for Visual Studio
|
||||
.ntvs_analysis.dat
|
||||
node_modules/
|
||||
|
||||
# Visual Studio 6 build log
|
||||
*.plg
|
||||
|
||||
# Visual Studio 6 workspace options file
|
||||
*.opt
|
||||
|
||||
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
|
||||
*.vbw
|
||||
|
||||
# Visual Studio LightSwitch build output
|
||||
**/*.HTMLClient/GeneratedArtifacts
|
||||
**/*.DesktopClient/GeneratedArtifacts
|
||||
**/*.DesktopClient/ModelManifest.xml
|
||||
**/*.Server/GeneratedArtifacts
|
||||
**/*.Server/ModelManifest.xml
|
||||
_Pvt_Extensions
|
||||
|
||||
# Paket dependency manager
|
||||
.paket/paket.exe
|
||||
paket-files/
|
||||
|
||||
# FAKE - F# Make
|
||||
.fake/
|
||||
|
||||
# CodeRush personal settings
|
||||
.cr/personal
|
||||
|
||||
# Python Tools for Visual Studio (PTVS)
|
||||
__pycache__/
|
||||
*.pyc
|
||||
|
||||
# Cake - Uncomment if you are using it
|
||||
# tools/**
|
||||
# !tools/packages.config
|
||||
|
||||
# Tabs Studio
|
||||
*.tss
|
||||
|
||||
# Telerik's JustMock configuration file
|
||||
*.jmconfig
|
||||
|
||||
# BizTalk build output
|
||||
*.btp.cs
|
||||
*.btm.cs
|
||||
*.odx.cs
|
||||
*.xsd.cs
|
||||
|
||||
# OpenCover UI analysis results
|
||||
OpenCover/
|
||||
|
||||
# Azure Stream Analytics local run output
|
||||
ASALocalRun/
|
||||
|
||||
# MSBuild Binary and Structured Log
|
||||
*.binlog
|
||||
|
||||
# NVidia Nsight GPU debugger configuration file
|
||||
*.nvuser
|
||||
|
||||
# MFractors (Xamarin productivity tool) working folder
|
||||
.mfractor/
|
||||
|
||||
# Local History for Visual Studio
|
||||
.localhistory/
|
||||
|
||||
# BeatPulse healthcheck temp database
|
||||
healthchecksdb
|
||||
|
||||
# Backup folder for Package Reference Convert tool in Visual Studio 2017
|
||||
MigrationBackup/
|
||||
|
||||
# Ionide (cross platform F# VS Code tools) working folder
|
||||
.ionide/
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
// Use IntelliSense to learn about possible attributes.
|
||||
// Hover to view descriptions of existing attributes.
|
||||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"type": "pwa-chrome",
|
||||
"request": "launch",
|
||||
"name": "Launch Chrome",
|
||||
"url": "http://localhost:3000",
|
||||
"webRoot": "${workspaceFolder}"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"editor.detectIndentation": false,
|
||||
"files.trimTrailingWhitespace": true,
|
||||
"css.styleSheets": [
|
||||
"https://cdn.jsdelivr.net/npm/bulma@0.9.3/css/bulma.min.css",
|
||||
"https://cdn.jsdelivr.net/npm/bootstrap-icons@1.5.0/font/bootstrap-icons.css"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 16
|
||||
VisualStudioVersion = 16.0.30114.105
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "DexTemplates", "src\DexTemplates.fsproj", "{FA05EC30-6BCD-440D-AD18-4F2030BA1E83}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{FA05EC30-6BCD-440D-AD18-4F2030BA1E83}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{FA05EC30-6BCD-440D-AD18-4F2030BA1E83}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{FA05EC30-6BCD-440D-AD18-4F2030BA1E83}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{FA05EC30-6BCD-440D-AD18-4F2030BA1E83}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
@@ -0,0 +1,24 @@
|
||||
# Oceanbox IdP
|
||||
|
||||
```
|
||||
npm install && npm start
|
||||
```
|
||||
|
||||
Other commands:
|
||||
|
||||
```bash
|
||||
npm test # Run tests
|
||||
npm run test:watch # Run tests in watch mode
|
||||
npm test -- --update-snapshots # Update test snapshots
|
||||
npm run build # Build optimized site for deployment and put in dist/
|
||||
```
|
||||
|
||||
## Vite.js repository structure conventions
|
||||
|
||||
- Put static files in `public/` folder
|
||||
- Put `index.html` in app root (next to `package.json`)
|
||||
- Add a reference to the entry JS file (relative path is important):
|
||||
|
||||
```html
|
||||
<script type="module" src="./build/client/App.js"></script>
|
||||
```
|
||||
@@ -0,0 +1,17 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
server="root@fs1-0"
|
||||
path="/vol/brick0/nfs0/k1/pv-oceanbox-dex"
|
||||
dest="$server:$path"
|
||||
|
||||
index=$(basename dist/assets/index-*.js)
|
||||
|
||||
ssh $server -- rm $path/static/js/*.js
|
||||
scp dist/assets/*.js $dest/static/js/
|
||||
|
||||
sed -r "s/@index@/$index/" ./dex/templates/login.html > login.html.$$
|
||||
scp ./dex/templates/* $dest/templates/
|
||||
scp ./dex/static/*.* $dest/static/
|
||||
scp login.html.$$ $dest/templates/login.html
|
||||
rm login.html.$$
|
||||
ssh admin@k1-0.itpartner.intern -- kubectl rollout restart -n oceanbox deployment/dex
|
||||
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
||||
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
||||
width="180.000000pt" height="180.000000pt" viewBox="0 0 180.000000 180.000000"
|
||||
preserveAspectRatio="xMidYMid meet">
|
||||
|
||||
<g transform="translate(0.000000,180.000000) scale(0.100000,-0.100000)"
|
||||
fill="#4169E1" stroke="none">
|
||||
<path d="M580 1422 l-315 -117 3 -214 c4 -298 25 -400 113 -548 73 -122 257
|
||||
-285 302 -267 11 4 157 326 157 347 0 3 -16 11 -35 17 -54 18 -122 92 -140
|
||||
152 -19 65 -19 93 0 149 56 165 256 222 386 110 77 -65 107 -169 74 -260 -22
|
||||
-64 -52 -99 -111 -132 -30 -17 -54 -37 -54 -45 0 -26 133 -336 147 -341 25
|
||||
-10 58 6 128 62 122 97 210 219 255 355 32 96 39 150 46 391 l6 219 -33 14
|
||||
c-48 20 -606 226 -610 226 -2 -1 -146 -54 -319 -118z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 861 B |
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="1000" width="785.714">
|
||||
<path d="M454.77 479.386q4.464 35.154 -28.179 56.358t-62.217 3.348q-21.762 -9.486 -29.853 -32.364t-.279 -45.756 29.016 -32.364q20.088 -10.044 40.455 -6.696t35.712 19.809 15.345 37.665zm61.938 -11.718q-7.812 -59.706 -63.054 -91.512t-109.926 -7.254q-35.154 15.624 -56.079 49.383t-19.251 72.261q2.232 50.778 43.245 86.49t92.349 31.248q50.778 -4.464 84.816 -46.872t27.9 -93.744zm133.362 -302.436q-11.16 -15.066 -31.248 -24.831t-32.364 -12.276 -39.618 -6.975q-162.378 -26.226 -315.828 1.116 -23.994 3.906 -36.828 6.696t-30.69 12.276 -27.9 23.994q16.74 15.624 42.408 25.389t41.013 12.276 48.825 6.417q127.224 16.182 249.984 .558 35.154 -4.464 49.941 -6.696t40.455 -11.997 41.85 -25.947zm31.806 577.53q-4.464 14.508 -8.649 42.687t-7.812 46.872 -15.903 39.06 -32.364 31.527q-47.988 26.784 -105.741 39.897t-112.716 12.276 -112.437 -10.323q-25.668 -4.464 -45.477 -10.044t-42.687 -15.066 -40.734 -24.273 -29.016 -34.317q-13.95 -53.568 -31.806 -162.936l3.348 -8.928 10.044 -5.022q124.434 82.584 282.627 82.584t283.185 -82.584q11.718 3.348 13.392 12.834t-2.79 25.11 -4.464 20.646zm100.998 -536.238q-14.508 93.186 -61.938 365.49 -2.79 16.74 -15.066 31.248t-24.273 22.32 -30.411 17.298q-140.616 70.308 -340.38 49.104 -138.384 -15.066 -219.852 -77.562 -8.37 -6.696 -14.229 -14.787t-9.486 -19.53 -5.022 -18.972 -3.348 -22.041 -3.069 -19.53q-5.022 -27.9 -14.787 -83.7t-15.624 -90.117 -13.113 -82.305 -12.276 -88.164q1.674 -14.508 9.765 -27.063t17.577 -20.925 25.11 -16.74 25.668 -12.555 26.784 -10.323q69.75 -25.668 174.654 -35.712 211.482 -20.646 377.208 27.9 86.49 25.668 119.97 68.076 8.928 11.16 9.207 28.458t-3.069 30.132z" fill="#FFFFFF"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="27px" height="21px" viewBox="0 0 27 21" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Generator: Sketch 46.2 (44496) - http://www.bohemiancoding.com/sketch -->
|
||||
<title>Shape</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<defs></defs>
|
||||
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="email-logo" fill-rule="nonzero" fill="#ffffff">
|
||||
<path d="M0.5,0.3 L0.5,20.6 L26.5,20.6 L26.5,0.3 L0.5,0.3 Z M23,2.3 L13.4,11.6 L4,2.3 L23,2.3 Z M2.5,18.7 L2.5,3.7 L13.5,14.4 L24.5,3.7 L24.5,18.7 L2.5,18.7 Z" id="Shape"></path>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 730 B |
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640" style="enable-background:new 0 0 640 640" xml:space="preserve" width="32" height="32"><path style="fill:#fff" d="m395.9 484.2-126.9-61c-12.5-6-17.9-21.2-11.8-33.8l61-126.9c6-12.5 21.2-17.9 33.8-11.8 17.2 8.3 27.1 13 27.1 13l-.1-109.2 16.7-.1.1 117.1s57.4 24.2 83.1 40.1c3.7 2.3 10.2 6.8 12.9 14.4 2.1 6.1 2 13.1-1 19.3l-61 126.9c-6.2 12.7-21.4 18.1-33.9 12z"/><path style="fill:#609926" d="M622.7 149.8c-4.1-4.1-9.6-4-9.6-4s-117.2 6.6-177.9 8c-13.3.3-26.5.6-39.6.7v117.2c-5.5-2.6-11.1-5.3-16.6-7.9 0-36.4-.1-109.2-.1-109.2-29 .4-89.2-2.2-89.2-2.2s-141.4-7.1-156.8-8.5c-9.8-.6-22.5-2.1-39 1.5-8.7 1.8-33.5 7.4-53.8 26.9C-4.9 212.4 6.6 276.2 8 285.8c1.7 11.7 6.9 44.2 31.7 72.5 45.8 56.1 144.4 54.8 144.4 54.8s12.1 28.9 30.6 55.5c25 33.1 50.7 58.9 75.7 62 63 0 188.9-.1 188.9-.1s12 .1 28.3-10.3c14-8.5 26.5-23.4 26.5-23.4S547 483 565 451.5c5.5-9.7 10.1-19.1 14.1-28 0 0 55.2-117.1 55.2-231.1-1.1-34.5-9.6-40.6-11.6-42.6zM125.6 353.9c-25.9-8.5-36.9-18.7-36.9-18.7S69.6 321.8 60 295.4c-16.5-44.2-1.4-71.2-1.4-71.2s8.4-22.5 38.5-30c13.8-3.7 31-3.1 31-3.1s7.1 59.4 15.7 94.2c7.2 29.2 24.8 77.7 24.8 77.7s-26.1-3.1-43-9.1zm300.3 107.6s-6.1 14.5-19.6 15.4c-5.8.4-10.3-1.2-10.3-1.2s-.3-.1-5.3-2.1l-112.9-55s-10.9-5.7-12.8-15.6c-2.2-8.1 2.7-18.1 2.7-18.1L322 273s4.8-9.7 12.2-13c.6-.3 2.3-1 4.5-1.5 8.1-2.1 18 2.8 18 2.8L467.4 315s12.6 5.7 15.3 16.2c1.9 7.4-.5 14-1.8 17.2-6.3 15.4-55 113.1-55 113.1z"/><path style="fill:#609926" d="M326.8 380.1c-8.2.1-15.4 5.8-17.3 13.8-1.9 8 2 16.3 9.1 20 7.7 4 17.5 1.8 22.7-5.4 5.1-7.1 4.3-16.9-1.8-23.1l24-49.1c1.5.1 3.7.2 6.2-.5 4.1-.9 7.1-3.6 7.1-3.6 4.2 1.8 8.6 3.8 13.2 6.1 4.8 2.4 9.3 4.9 13.4 7.3.9.5 1.8 1.1 2.8 1.9 1.6 1.3 3.4 3.1 4.7 5.5 1.9 5.5-1.9 14.9-1.9 14.9-2.3 7.6-18.4 40.6-18.4 40.6-8.1-.2-15.3 5-17.7 12.5-2.6 8.1 1.1 17.3 8.9 21.3 7.8 4 17.4 1.7 22.5-5.3 5-6.8 4.6-16.3-1.1-22.6 1.9-3.7 3.7-7.4 5.6-11.3 5-10.4 13.5-30.4 13.5-30.4.9-1.7 5.7-10.3 2.7-21.3-2.5-11.4-12.6-16.7-12.6-16.7-12.2-7.9-29.2-15.2-29.2-15.2s0-4.1-1.1-7.1c-1.1-3.1-2.8-5.1-3.9-6.3 4.7-9.7 9.4-19.3 14.1-29-4.1-2-8.1-4-12.2-6.1-4.8 9.8-9.7 19.7-14.5 29.5-6.7-.1-12.9 3.5-16.1 9.4-3.4 6.3-2.7 14.1 1.9 19.8l-24.6 50.4z"/></svg>
|
||||
|
After Width: | Height: | Size: 2.2 KiB |
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="16" width="16">
|
||||
<path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59 0.4 0.07 0.55-0.17 0.55-0.38 0-0.19-0.01-0.82-0.01-1.49-2.01 0.37-2.53-0.49-2.69-0.94-0.09-0.23-0.48-0.94-0.82-1.13-0.28-0.15-0.68-0.52-0.01-0.53 0.63-0.01 1.08 0.58 1.23 0.82 0.72 1.21 1.87 0.87 2.33 0.66 0.07-0.52 0.28-0.87 0.51-1.07-1.78-0.2-3.64-0.89-3.64-3.95 0-0.87 0.31-1.59 0.82-2.15-0.08-0.2-0.36-1.02 0.08-2.12 0 0 0.67-0.21 2.2 0.82 0.64-0.18 1.32-0.27 2-0.27 0.68 0 1.36 0.09 2 0.27 1.53-1.04 2.2-0.82 2.2-0.82 0.44 1.1 0.16 1.92 0.08 2.12 0.51 0.56 0.82 1.27 0.82 2.15 0 3.07-1.87 3.75-3.65 3.95 0.29 0.25 0.54 0.73 0.54 1.48 0 1.07-0.01 1.93-0.01 2.2 0 0.21 0.15 0.46 0.55 0.38C13.71 14.53 16 11.53 16 8 16 3.58 12.42 0 8 0z" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 913 B |
@@ -0,0 +1,53 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="500px" height="500px" viewBox="0 0 500 500" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
|
||||
<!-- Generator: Sketch 3.2.2 (9983) - http://www.bohemiancoding.com/sketch -->
|
||||
<title>logo-square</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<defs></defs>
|
||||
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
|
||||
<g id="logo-square" sketch:type="MSArtboardGroup">
|
||||
<g id="logo-no-bg" sketch:type="MSLayerGroup" transform="translate(2.000000, 19.000000)">
|
||||
<g id="Page-1" sketch:type="MSShapeGroup">
|
||||
<g id="gitlab_logo">
|
||||
<g id="g10" transform="translate(248.000000, 228.833300) scale(1, -1) translate(-248.000000, -228.833300) translate(0.000000, 0.333300)">
|
||||
<g id="g16">
|
||||
<g id="g18-Clipped">
|
||||
<g id="g18">
|
||||
<g>
|
||||
<g id="Group" transform="translate(0.666658, 0.666658)">
|
||||
<g id="g44" transform="translate(0.532000, 0.774933)" fill="#FC6D26">
|
||||
<path d="M491.999988,194.666662 L464.441322,279.481326 L409.82399,447.578655 C407.014656,456.226655 394.778657,456.226655 391.96799,447.578655 L337.349325,279.481326 L155.982663,279.481326 L101.362664,447.578655 C98.5533309,456.226655 86.3173312,456.226655 83.5066646,447.578655 L28.8893326,279.481326 L1.33199997,194.666662 C-1.18266664,186.930662 1.57199996,178.455996 8.1519998,173.674662 L246.665327,0.385333324 L485.179988,173.674662 C491.759988,178.455996 494.513321,186.930662 491.999988,194.666662" id="path46"></path>
|
||||
</g>
|
||||
<g id="g48" transform="translate(156.197863, 1.160267)" fill="#E24329">
|
||||
<path d="M90.9999977,0 L90.9999977,0 L181.683995,279.095993 L0.31599997,279.095993 L90.9999977,0 L90.9999977,0 Z" id="path50"></path>
|
||||
</g>
|
||||
<g id="g56" transform="translate(28.531199, 1.160800)" fill="#FC6D26">
|
||||
<path d="M218.666661,0 L127.982663,279.09466 L0.890666644,279.09466 L218.666661,0 L218.666661,0 Z" id="path58"></path>
|
||||
</g>
|
||||
<g id="g64" transform="translate(0.088533, 0.255867)" fill="#FCA326">
|
||||
<path d="M29.3333326,279.999993 L29.3333326,279.999993 L1.77466662,195.185328 C-0.738666648,187.449329 2.01466662,178.974662 8.59599979,174.194662 L247.109327,0.905333311 L29.3333326,279.999993 L29.3333326,279.999993 Z" id="path66"></path>
|
||||
</g>
|
||||
<g id="g72" transform="translate(29.421866, 280.255593)" fill="#E24329">
|
||||
<path d="M0,0 L127.091997,0 L72.4733315,168.097329 C69.6626649,176.746662 57.4266652,176.746662 54.617332,168.097329 L0,0 L0,0 Z" id="path74"></path>
|
||||
</g>
|
||||
<g id="g76" transform="translate(247.197860, 1.160800)" fill="#FC6D26">
|
||||
<path d="M0,0 L90.6839977,279.09466 L217.775995,279.09466 L0,0 L0,0 Z" id="path78"></path>
|
||||
</g>
|
||||
<g id="g80" transform="translate(246.307061, 0.255867)" fill="#FCA326">
|
||||
<path d="M218.666661,279.999993 L218.666661,279.999993 L246.225327,195.185328 C248.73866,187.449329 245.985327,178.974662 239.403994,174.194662 L0.890666644,0.905333311 L218.666661,279.999993 L218.666661,279.999993 Z" id="path82"></path>
|
||||
</g>
|
||||
<g id="g84" transform="translate(336.973725, 280.255593)" fill="#E24329">
|
||||
<path d="M127.999997,0 L0.907999977,0 L55.5266653,168.097329 C58.3373319,176.746662 70.5733316,176.746662 73.3826648,168.097329 L127.999997,0 L127.999997,0 Z" id="path86"></path>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.9 KiB |
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="18px" height="18px" viewBox="0 0 18 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Generator: Sketch 46.2 (44496) - http://www.bohemiancoding.com/sketch -->
|
||||
<title>logo_googleg_48dp</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<defs></defs>
|
||||
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="logo_googleg_48dp">
|
||||
<path d="M17.64,9.20454545 C17.64,8.56636364 17.5827273,7.95272727 17.4763636,7.36363636 L9,7.36363636 L9,10.845 L13.8436364,10.845 C13.635,11.97 13.0009091,12.9231818 12.0477273,13.5613636 L12.0477273,15.8195455 L14.9563636,15.8195455 C16.6581818,14.2527273 17.64,11.9454545 17.64,9.20454545 L17.64,9.20454545 Z" id="Shape" fill="#4285F4" fill-rule="nonzero"></path>
|
||||
<path d="M9,18 C11.43,18 13.4672727,17.1940909 14.9563636,15.8195455 L12.0477273,13.5613636 C11.2418182,14.1013636 10.2109091,14.4204545 9,14.4204545 C6.65590909,14.4204545 4.67181818,12.8372727 3.96409091,10.71 L0.957272727,10.71 L0.957272727,13.0418182 C2.43818182,15.9831818 5.48181818,18 9,18 L9,18 Z" id="Shape" fill="#34A853" fill-rule="nonzero"></path>
|
||||
<path d="M3.96409091,10.71 C3.78409091,10.17 3.68181818,9.59318182 3.68181818,9 C3.68181818,8.40681818 3.78409091,7.83 3.96409091,7.29 L3.96409091,4.95818182 L0.957272727,4.95818182 C0.347727273,6.17318182 0,7.54772727 0,9 C0,10.4522727 0.347727273,11.8268182 0.957272727,13.0418182 L3.96409091,10.71 L3.96409091,10.71 Z" id="Shape" fill="#FBBC05" fill-rule="nonzero"></path>
|
||||
<path d="M9,3.57954545 C10.3213636,3.57954545 11.5077273,4.03363636 12.4404545,4.92545455 L15.0218182,2.34409091 C13.4631818,0.891818182 11.4259091,0 9,0 C5.48181818,0 2.43818182,2.01681818 0.957272727,4.95818182 L3.96409091,7.29 C4.67181818,5.16272727 6.65590909,3.57954545 9,3.57954545 L9,3.57954545 Z" id="Shape" fill="#EA4335" fill-rule="nonzero"></path>
|
||||
<polygon id="Shape" points="0 0 18 0 18 18 0 18"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.1 KiB |
@@ -0,0 +1,12 @@
|
||||
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="-10 0 210 185">
|
||||
<defs>
|
||||
<style>.cls-1{opacity:0.98;}.cls-2{fill:#ed1944;}</style>
|
||||
</defs>
|
||||
<title>OpenStack_Logo_Mark</title>
|
||||
<g class="cls-1">
|
||||
<path class="cls-2" d="M461.82,215.24h-150a17.17,17.17,0,0,0-17.12,17.12v40.35h41.61v-6.59a9.26,9.26,0,0,1,9.26-9.26h82.53a9.26,9.26,0,0,1,9.26,9.26v6.59H479V232.36A17.18,17.18,0,0,0,461.82,215.24Z" transform="translate(-294.67 -215.24)"/>
|
||||
<path class="cls-2" d="M437.33,344.72a9.27,9.27,0,0,1-9.26,9.26H345.54a9.27,9.27,0,0,1-9.26-9.26v-6.59H294.67v40.34a17.17,17.17,0,0,0,17.12,17.13h150A17.18,17.18,0,0,0,479,378.47V338.13H437.33Z" transform="translate(-294.67 -215.24)"/>
|
||||
<rect class="cls-2" y="69.37" width="41.62" height="41.62"/>
|
||||
<rect class="cls-2" x="142.66" y="69.37" width="41.62" height="41.62"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 905 B |
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="21px" height="17px" viewBox="0 0 21 17" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Generator: Sketch 46.2 (44496) - http://www.bohemiancoding.com/sketch -->
|
||||
<title>Combined-Shape</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<defs></defs>
|
||||
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="login_logo" fill-rule="nonzero" fill="#ffffff">
|
||||
<path d="M20.9998732,0 L21,16.8 L3.15,15.75 L3.15,11.025 L4.725,11.025 L4.725,14.175 L19.425,15.225 L19.425,1.575 L4.725,2.625 L4.725,5.775 L3.15,5.775 L3.15,1.05 L20.9998732,0 Z M10.4273448,11.5821438 L12.8956645,9.26892989 L0,9.26892989 L0,7.57550094 L12.8956645,7.57550094 L10.4273448,5.26641726 L11.39466,4.2 L15.5772664,8.40226079 L11.4497226,12.6045216 L10.4273448,11.5821438 Z" id="Combined-Shape"></path>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 973 B |
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" ?><svg style="enable-background:new 0 0 48 48;" version="1.1" viewBox="0 0 48 48" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="Icons"><g id="Icons_3_"><g><path d="M34.9549,10.525h-21.91c-1.3899,0-2.5199,1.13-2.5199,2.52v21.91c0,1.39,1.13,2.52,2.5199,2.52 h21.91c1.3901,0,2.5201-1.13,2.5201-2.52V13.0449C37.475,11.655,36.345,10.525,34.9549,10.525z M19.415,31.335 c-0.95-0.01-1.9101-0.01-2.8701,0c-0.18,0-0.23-0.05-0.23-0.24v-10.14c0-0.19,0.06-0.24,0.24-0.24 c0.95,0.01,1.9101,0.01,2.8601,0c0.1899,0,0.24,0.06,0.23,0.24v5.08c0,1.69,0,3.3799,0.01,5.07 C19.655,31.285,19.595,31.335,19.415,31.335z M17.9849,19.3549c-1.06,0.0101-1.93-0.8799-1.93-1.9299 c0.01-1.0101,0.7801-1.92,1.9201-1.93c1.0799-0.01,1.94,0.81,1.94,1.93C19.915,18.525,19.0749,19.345,17.9849,19.3549z M31.645,31.335h-2.81c-0.2301,0-0.24-0.01-0.24-0.25v-5.14c0-0.48-0.01-0.96-0.1501-1.43c-0.2199-0.73-0.69-1.08-1.46-1.1001 c-0.54-0.0099-1.05,0.0901-1.43,0.5101c-0.31,0.33-0.44,0.73-0.5,1.17c-0.0399,0.3899-0.07,0.79-0.07,1.19 c-0.0099,1.61-0.0099,3.22,0,4.8199c0,0.1801-0.05,0.2301-0.2199,0.2301c-0.9601-0.01-1.93-0.01-2.8901,0 c-0.1699,0-0.2299-0.05-0.2299-0.2301c0.01-3.3799,0.01-6.7699,0-10.1599c0-0.18,0.07-0.23,0.2299-0.23 c0.92,0.01,1.8401,0.01,2.7601,0c0.1799,0,0.2399,0.07,0.2299,0.24c-0.01,0.37,0,0.75,0,1.12 c0.5201-0.77,1.2201-1.26,2.1001-1.48c1.0199-0.25,2.0299-0.17,2.99,0.25c0.93,0.4,1.43,1.16,1.69,2.1 c0.18,0.61,0.26,1.24,0.27,1.88c0.0099,2.07,0.0199,4.14,0.03,6.22C31.9449,31.335,31.9449,31.335,31.645,31.335z" style="fill:#0097D3;"/></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="439" width="439">
|
||||
<rect height="439" width="439" fill="#f3f3f3"/>
|
||||
<rect height="194" width="194" x="17" y="17" fill="#F35325"/>
|
||||
<rect height="194" width="194" x="228" y="17" fill="#81BC06"/>
|
||||
<rect height="194" width="194" x="17" y="228" fill="#05A6F0"/>
|
||||
<rect height="194" width="194" x="228" y="228" fill="#FFBA08"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 544 B |
|
After Width: | Height: | Size: 571 KiB |
@@ -0,0 +1,156 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="256"
|
||||
height="256"
|
||||
id="svg2"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.47 r22583"
|
||||
sodipodi:docname="openid.svg"
|
||||
version="1.0"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape">
|
||||
<title
|
||||
id="title2910">facebook web</title>
|
||||
<defs
|
||||
id="defs4">
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 128 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="256 : 128 : 1"
|
||||
inkscape:persp3d-origin="128 : 85.333333 : 1"
|
||||
id="perspective17" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient2555">
|
||||
<stop
|
||||
style="stop-color: rgb(255, 255, 255); stop-opacity: 1;"
|
||||
offset="0"
|
||||
id="stop2557" />
|
||||
<stop
|
||||
style="stop-color: rgb(255, 255, 255); stop-opacity: 0;"
|
||||
offset="1"
|
||||
id="stop2559" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2555"
|
||||
id="linearGradient2449"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-0.5914584,0,0,0.5914584,210.02161,142.23241)"
|
||||
x1="-344.15295"
|
||||
y1="274.711"
|
||||
x2="-395.84943"
|
||||
y2="425.39993" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.24748737"
|
||||
inkscape:cx="-276.99783"
|
||||
inkscape:cy="104.86584"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
inkscape:window-width="712"
|
||||
inkscape:window-height="762"
|
||||
inkscape:window-x="1"
|
||||
inkscape:window-y="193"
|
||||
showgrid="false"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title>facebook web</dc:title>
|
||||
<dc:creator>
|
||||
<cc:Agent>
|
||||
<dc:title>User:ZyMOS</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
<dc:subject>
|
||||
<rdf:Bag />
|
||||
</dc:subject>
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
|
||||
<dc:description />
|
||||
<dc:contributor>
|
||||
<cc:Agent>
|
||||
<dc:title />
|
||||
</cc:Agent>
|
||||
</dc:contributor>
|
||||
<dc:publisher>
|
||||
<cc:Agent>
|
||||
<dc:title>Open Icon Library</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:publisher>
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/licenses/publicdomain/">
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Distribution" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-373.642,-318.344)">
|
||||
<rect
|
||||
inkscape:export-ydpi="7.7063322"
|
||||
inkscape:export-xdpi="7.7063322"
|
||||
inkscape:export-filename="C:\Documents and Settings\Molumen\Desktop\path3511111.png"
|
||||
transform="scale(-1,1)"
|
||||
ry="35.487503"
|
||||
rx="35.487503"
|
||||
y="328.34399"
|
||||
x="-619.64203"
|
||||
height="236"
|
||||
width="236"
|
||||
id="rect1942"
|
||||
style="fill:#ebebee;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.5,1;stroke-dashoffset:0;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:export-ydpi="7.7063322"
|
||||
inkscape:export-xdpi="7.7063322"
|
||||
inkscape:export-filename="C:\Documents and Settings\Molumen\Desktop\path3511111.png"
|
||||
sodipodi:nodetypes="ccccsssc"
|
||||
id="path1950"
|
||||
d="M 557.29062,338.43314 L 445.99327,338.43314 C 416.53255,338.43314 392.81507,362.34527 392.81507,392.04777 L 392.81507,500.64007 C 393.76867,523.8254 397.43678,509.16812 404.41887,483.49194 C 412.53354,453.65102 438.96056,427.56963 471.144,408.02312 C 495.7086,393.10398 523.20395,383.5772 573.25282,382.6709 C 601.63697,382.15694 599.13112,345.83025 557.29062,338.43314 z"
|
||||
style="opacity:0.98283262;fill:url(#linearGradient2449);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.87500000000000000;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.87500000000000000, 1.75000000000000000;stroke-dashoffset:0;stroke-opacity:1" />
|
||||
<path
|
||||
style="fill:#ff8e00;fill-opacity:1;stroke:none"
|
||||
d="m 488.0825,538.40564 26.93006,-19.41471 -1.2525,-154.06511 -25.67756,20.04099 0,153.43883 z"
|
||||
id="path25468" />
|
||||
<path
|
||||
style="fill:#626262;fill-opacity:1;stroke:none"
|
||||
d="M 488.39564,538.40564 C 387.66591,522.39153 384.79535,434.69468 487.76935,415.65457 l 0.31315,18.16215 c -73.04418,12.17854 -63.78999,77.70661 0,87.36619 l 0.31314,17.22273 z"
|
||||
id="path25470"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<path
|
||||
style="fill:#626262;fill-opacity:1;stroke:none"
|
||||
d="m 514.69946,433.19044 c 12.45669,0.0847 23.30841,5.78683 34.13233,11.58619 l -15.97017,11.89934 51.04191,0 0.3131,-34.75859 -15.97018,11.89934 c -16.16175,-8.16308 -31.01691,-17.95941 -53.54699,-18.16215 l 0,17.53587 z"
|
||||
id="path25472"
|
||||
sodipodi:nodetypes="cccccccc" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.9 KiB |
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="21px" height="17px" viewBox="0 0 21 17" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Generator: Sketch 46.2 (44496) - http://www.bohemiancoding.com/sketch -->
|
||||
<title>Combined-Shape</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<defs></defs>
|
||||
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="login_logo" fill-rule="nonzero" fill="#ffffff">
|
||||
<path d="M20.9998732,0 L21,16.8 L3.15,15.75 L3.15,11.025 L4.725,11.025 L4.725,14.175 L19.425,15.225 L19.425,1.575 L4.725,2.625 L4.725,5.775 L3.15,5.775 L3.15,1.05 L20.9998732,0 Z M10.4273448,11.5821438 L12.8956645,9.26892989 L0,9.26892989 L0,7.57550094 L12.8956645,7.57550094 L10.4273448,5.26641726 L11.39466,4.2 L15.5772664,8.40226079 L11.4497226,12.6045216 L10.4273448,11.5821438 Z" id="Combined-Shape"></path>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 973 B |
@@ -0,0 +1,43 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<title>{{ issuer }}</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link href="/dex/static/main.css" rel="stylesheet">
|
||||
<link href="/dex/theme/styles.css" rel="stylesheet">
|
||||
<link rel="icon" href="/dex/theme/favicon.png"">
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@shoelace-style/shoelace@2.0.0-beta.88/dist/themes/light.css" />
|
||||
|
||||
<!-- Used to hide custom components until they are defined and prevent a flash of unstyled content -->
|
||||
<style>
|
||||
*:not(:defined) { display:none }
|
||||
html, body {
|
||||
overflow-y: hidden;
|
||||
height: 100%;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body class="theme-body" onpageshow="delayRedirect()">
|
||||
<div class="theme-navbar">
|
||||
<div class="theme-navbar__logo-wrap">
|
||||
<img class="theme-navbar__logo" src="/dex/theme/logo.png">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="dex-container">
|
||||
<h2>You have been logged out.</h2>
|
||||
Yoy will be redirected in a moment.
|
||||
</div>
|
||||
<script>
|
||||
function redirect() {
|
||||
document.location.href = document.referrer;
|
||||
}
|
||||
function delayRedirect() {
|
||||
setTimeout(redirect, 2000);
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,148 @@
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.dex-container {
|
||||
color: #333;
|
||||
margin: 45px auto;
|
||||
max-width: 500px;
|
||||
min-width: 320px;
|
||||
/* text-align: center; */
|
||||
}
|
||||
|
||||
.dex-btn {
|
||||
border-radius: 4px;
|
||||
border: 0;
|
||||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.25), 0 0 1px rgba(0, 0, 0, 0.25);
|
||||
cursor: pointer;
|
||||
font-size: 16px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.dex-btn:focus {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.dex-btn:active {
|
||||
box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.dex-btn-icon {
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
background-size: 24px;
|
||||
border-radius: 4px 0 0 4px;
|
||||
float: left;
|
||||
height: 36px;
|
||||
margin-right: 5px;
|
||||
width: 36px;
|
||||
}
|
||||
|
||||
.dex-btn-icon--google {
|
||||
background-color: #FFFFFF;
|
||||
background-image: url(../static/img/google-icon.svg);;
|
||||
}
|
||||
|
||||
.dex-btn-icon--local {
|
||||
background-color: #84B6EF;
|
||||
background-image: url(../static/img/email-icon.svg);
|
||||
}
|
||||
|
||||
.dex-btn-icon--gitea {
|
||||
background-color: #F5F5F5;
|
||||
background-image: url(../static/img/gitea-icon.svg);
|
||||
}
|
||||
|
||||
.dex-btn-icon--github {
|
||||
background-color: #F5F5F5;
|
||||
background-image: url(../static/img/github-icon.svg);
|
||||
}
|
||||
|
||||
.dex-btn-icon--gitlab {
|
||||
background-color: #F5F5F5;
|
||||
background-image: url(../static/img/gitlab-icon.svg);
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
.dex-btn-icon--keystone {
|
||||
background-color: #F5F5F5;
|
||||
background-image: url(../static/img/keystone-icon.svg);
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
.dex-btn-icon--oidc {
|
||||
background-color: #EBEBEE;
|
||||
background-image: url(../static/img/oidc-icon.svg);
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
.dex-btn-icon--bitbucket-cloud {
|
||||
background-color: #205081;
|
||||
background-image: url(../static/img/bitbucket-icon.svg);
|
||||
}
|
||||
|
||||
.dex-btn-icon--atlassian-crowd {
|
||||
background-color: #CFDCEA;
|
||||
background-image: url(../static/img/atlassian-crowd-icon.svg);
|
||||
}
|
||||
|
||||
.dex-btn-icon--ldap {
|
||||
background-color: #84B6EF;
|
||||
background-image: url(../static/img/ldap-icon.svg);
|
||||
}
|
||||
|
||||
.dex-btn-icon--saml {
|
||||
background-color: #84B6EF;
|
||||
background-image: url(../static/img/saml-icon.svg);
|
||||
}
|
||||
|
||||
.dex-btn-icon--linkedin {
|
||||
background-image: url(../static/img/linkedin-icon.svg);
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
.dex-btn-icon--microsoft {
|
||||
background-image: url(../static/img/microsoft-icon.svg);
|
||||
}
|
||||
|
||||
.dex-btn-text {
|
||||
font-weight: 600;
|
||||
line-height: 36px;
|
||||
padding: 6px 12px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.dex-subtle-text {
|
||||
color: #999;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.dex-separator {
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.dex-list {
|
||||
color: #999;
|
||||
display: inline-block;
|
||||
font-size: 12px;
|
||||
list-style: circle;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.dex-error-box {
|
||||
background-color: #DD1327;
|
||||
color: #fff;
|
||||
font-size: 14px;
|
||||
font-weight: normal;
|
||||
max-width: 320px;
|
||||
padding: 4px 0;
|
||||
}
|
||||
|
||||
.dex-error-box {
|
||||
margin: 20px auto;
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
{{ template "header.html" . }}
|
||||
|
||||
<div class="theme-panel">
|
||||
<h2 class="theme-heading">Grant Access</h2>
|
||||
|
||||
<hr class="dex-separator">
|
||||
<div>
|
||||
{{ if .Scopes }}
|
||||
<div class="dex-subtle-text">{{ .Client }} would like to:</div>
|
||||
<ul class="dex-list">
|
||||
{{ range $scope := .Scopes }}
|
||||
<li>{{ $scope }}</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
{{ else }}
|
||||
<div class="dex-subtle-text">{{ .Client }} has not requested any personal information</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
<hr class="dex-separator">
|
||||
|
||||
<div>
|
||||
<div class="theme-form-row">
|
||||
<form method="post">
|
||||
<input type="hidden" name="req" value="{{ .AuthReqID }}"/>
|
||||
<input type="hidden" name="approval" value="approve">
|
||||
<button type="submit" class="dex-btn theme-btn--success">
|
||||
<span class="dex-btn-text">Grant Access</span>
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
<div class="theme-form-row">
|
||||
<form method="post">
|
||||
<input type="hidden" name="req" value="{{ .AuthReqID }}"/>
|
||||
<input type="hidden" name="approval" value="rejected">
|
||||
<button type="submit" class="dex-btn theme-btn-provider">
|
||||
<span class="dex-btn-text">Cancel</span>
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
{{ template "footer.html" . }}
|
||||
@@ -0,0 +1,23 @@
|
||||
{{ template "header.html" . }}
|
||||
|
||||
<div class="theme-panel">
|
||||
<h2 class="theme-heading">Enter User Code</h2>
|
||||
<form method="post" action="{{ .PostURL }}" method="get">
|
||||
<div class="theme-form-row">
|
||||
{{ if( .UserCode )}}
|
||||
<input tabindex="2" required id="user_code" name="user_code" type="text" class="theme-form-input" autocomplete="off" value="{{.UserCode}}" {{ if .Invalid }} autofocus {{ end }}/>
|
||||
{{ else }}
|
||||
<input tabindex="2" required id="user_code" name="user_code" type="text" class="theme-form-input" placeholder="XXXX-XXXX" autocomplete="off" {{ if .Invalid }} autofocus {{ end }}/>
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
{{ if .Invalid }}
|
||||
<div id="login-error" class="dex-error-box">
|
||||
Invalid or Expired User Code
|
||||
</div>
|
||||
{{ end }}
|
||||
<button tabindex="3" id="submit-login" type="submit" class="dex-btn theme-btn--primary">Submit</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
{{ template "footer.html" . }}
|
||||
@@ -0,0 +1,8 @@
|
||||
{{ template "header.html" . }}
|
||||
|
||||
<div class="theme-panel">
|
||||
<h2 class="theme-heading">Login Successful for {{ .ClientName }}</h2>
|
||||
<p>Return to your device to continue</p>
|
||||
</div>
|
||||
|
||||
{{ template "footer.html" . }}
|
||||
@@ -0,0 +1,8 @@
|
||||
{{ template "header.html" . }}
|
||||
|
||||
<div class="theme-panel">
|
||||
<h2 class="theme-heading">{{ .ErrType }}</h2>
|
||||
<p>{{ .ErrMsg }}</p>
|
||||
</div>
|
||||
|
||||
{{ template "footer.html" . }}
|
||||
@@ -0,0 +1,3 @@
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,31 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<title>{{ issuer }}</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link href="{{ url .ReqPath "static/main.css" }}" rel="stylesheet">
|
||||
<link href="{{ url .ReqPath "theme/styles.css" }}" rel="stylesheet">
|
||||
<link rel="icon" href="{{ url .ReqPath "theme/favicon.png" }}">
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@shoelace-style/shoelace@2.0.0-beta.88/dist/themes/light.css" />
|
||||
<!-- <script type="module" src="https://cdn.jsdelivr.net/npm/@shoelace-style/shoelace@2.0.0-beta.88/dist/shoelace.js"></script> -->
|
||||
|
||||
<!-- Used to hide custom components until they are defined and prevent a flash of unstyled content -->
|
||||
<style>
|
||||
*:not(:defined) { display:none }
|
||||
html, body {
|
||||
overflow-y: hidden;
|
||||
height: 100%;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body class="theme-body">
|
||||
<div class="theme-navbar">
|
||||
<div class="theme-navbar__logo-wrap">
|
||||
<img class="theme-navbar__logo" src="{{ url .ReqPath logo }}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="dex-container">
|
||||
@@ -0,0 +1,10 @@
|
||||
{{ template "header.html" . }}
|
||||
|
||||
{{ range $c := .Connectors }}
|
||||
<a href="{{ $c.URL }}" target="_self" id="{{ $c.Name }}" hidden></a>
|
||||
{{ end }}
|
||||
|
||||
<login-app></login-app>
|
||||
<script type="module" crossorigin src="/dex/static/js/@index@"></script>
|
||||
|
||||
{{ template "footer.html" . }}
|
||||
@@ -0,0 +1,9 @@
|
||||
{{ template "header.html" . }}
|
||||
|
||||
<div class="theme-panel">
|
||||
<h2 class="theme-heading">Login Successful</h2>
|
||||
<p>Please copy this code, switch to your application and paste it there:</p>
|
||||
<input type="text" class="theme-form-input" value="{{ .Code }}" />
|
||||
</div>
|
||||
|
||||
{{ template "footer.html" . }}
|
||||
@@ -0,0 +1,35 @@
|
||||
{{ template "header.html" . }}
|
||||
|
||||
<div class="theme-panel">
|
||||
<h2 class="theme-heading">Log in to Your Account</h2>
|
||||
<form method="post" action="{{ .PostURL }}">
|
||||
<div class="theme-form-row">
|
||||
<div class="theme-form-label">
|
||||
<label for="userid">{{ .UsernamePrompt }}</label>
|
||||
</div>
|
||||
<input tabindex="1" required id="login" name="login" type="text" class="theme-form-input" placeholder="{{ .UsernamePrompt | lower }}" {{ if .Username }} value="{{ .Username }}" {{ else }} autofocus {{ end }}/>
|
||||
</div>
|
||||
<div class="theme-form-row">
|
||||
<div class="theme-form-label">
|
||||
<label for="password">Password</label>
|
||||
</div>
|
||||
<input tabindex="2" required id="password" name="password" type="password" class="theme-form-input" placeholder="password" {{ if .Invalid }} autofocus {{ end }}/>
|
||||
</div>
|
||||
|
||||
{{ if .Invalid }}
|
||||
<div id="login-error" class="dex-error-box">
|
||||
Invalid {{ .UsernamePrompt }} and password.
|
||||
</div>
|
||||
{{ end }}
|
||||
|
||||
<button tabindex="3" id="submit-login" type="submit" class="dex-btn theme-btn--primary">Login</button>
|
||||
|
||||
</form>
|
||||
{{ if .BackLink }}
|
||||
<div class="theme-link-back">
|
||||
<a class="dex-subtle-text" href="{{ .BackLink }}">Select another login method.</a>
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
{{ template "footer.html" . }}
|
||||
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 24 KiB |
@@ -0,0 +1,122 @@
|
||||
.theme-body {
|
||||
background-color: #0f1218;
|
||||
color: #c8d1d9;
|
||||
font-family: 'Source Sans Pro', Helvetica, sans-serif;
|
||||
}
|
||||
|
||||
.theme-navbar {
|
||||
background-color: #161b22;
|
||||
box-shadow: 0 2px 2px rgba(0, 0, 0, 0.2);
|
||||
color: #161B2B;
|
||||
font-size: 13px;
|
||||
font-weight: 100;
|
||||
height: 46px;
|
||||
overflow: hidden;
|
||||
padding: 0 10px;
|
||||
}
|
||||
|
||||
.theme-navbar__logo-wrap {
|
||||
display: inline-block;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
padding: 10px 15px;
|
||||
width: 300px;
|
||||
}
|
||||
|
||||
.theme-navbar__logo {
|
||||
height: 100%;
|
||||
max-height: 25px;
|
||||
}
|
||||
|
||||
.theme-heading {
|
||||
font-size: 20px;
|
||||
font-weight: 500;
|
||||
margin-top: 0;
|
||||
color: #c8d1d9;
|
||||
}
|
||||
|
||||
.theme-panel {
|
||||
background-color: #161b22;
|
||||
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
|
||||
padding: 30px;
|
||||
}
|
||||
|
||||
.theme-btn-provider {
|
||||
background-color: #1e242d;
|
||||
color: #c8d1d9;
|
||||
border: 1px solid #30373c;
|
||||
min-width: 250px;
|
||||
}
|
||||
|
||||
.theme-btn-provider:hover {
|
||||
background-color: #212731;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.theme-btn--primary {
|
||||
background-color: #1e242d;
|
||||
border: none;
|
||||
color: #c8d1d9;
|
||||
min-width: 200px;
|
||||
padding: 6px 12px;
|
||||
}
|
||||
|
||||
.theme-btn--primary:hover {
|
||||
background-color: #212731;
|
||||
color: #e9e9e9;
|
||||
}
|
||||
|
||||
.theme-btn--success {
|
||||
background-color: #1891bb;
|
||||
color: #e9e9e9;
|
||||
width: 250px;
|
||||
}
|
||||
|
||||
.theme-btn--success:hover {
|
||||
background-color: #1da5d4;
|
||||
}
|
||||
|
||||
.theme-form-row {
|
||||
display: block;
|
||||
margin: 20px auto;
|
||||
}
|
||||
|
||||
.theme-form-input {
|
||||
display: block;
|
||||
height: 36px;
|
||||
padding: 6px 12px;
|
||||
font-size: 14px;
|
||||
line-height: 1.42857143;
|
||||
border: 1px solid #515559;
|
||||
border-radius: 4px;
|
||||
color: #c8d1d9;
|
||||
background-color: #0f1218;
|
||||
box-shadow: inset 0 1px 1px rgb(27, 40, 46);
|
||||
width: 250px;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
.theme-form-input:focus,
|
||||
.theme-form-input:active {
|
||||
outline: none;
|
||||
border-color: #f8f9f9;
|
||||
color: #c8d1d9;
|
||||
}
|
||||
|
||||
.theme-form-label {
|
||||
width: 250px;
|
||||
margin: 4px auto;
|
||||
text-align: left;
|
||||
position: relative;
|
||||
font-size: 13px;
|
||||
font-weight: 600;
|
||||
color: #c8d1d9;
|
||||
}
|
||||
|
||||
.theme-link-back {
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
.dex-container {
|
||||
color: #c8d1d9;
|
||||
}
|
||||
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 24 KiB |
@@ -0,0 +1,113 @@
|
||||
.theme-body {
|
||||
background-color: #efefef;
|
||||
color: #333;
|
||||
font-family: 'Source Sans Pro', Helvetica, sans-serif;
|
||||
}
|
||||
|
||||
.theme-navbar {
|
||||
background-color: #fff;
|
||||
box-shadow: 0 2px 2px rgba(0, 0, 0, 0.2);
|
||||
color: #333;
|
||||
font-size: 13px;
|
||||
font-weight: 100;
|
||||
height: 46px;
|
||||
overflow: hidden;
|
||||
padding: 0 10px;
|
||||
}
|
||||
|
||||
.theme-navbar__logo-wrap {
|
||||
display: inline-block;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
padding: 10px 15px;
|
||||
width: 300px;
|
||||
}
|
||||
|
||||
.theme-navbar__logo {
|
||||
height: 100%;
|
||||
max-height: 25px;
|
||||
}
|
||||
|
||||
.theme-heading {
|
||||
font-size: 20px;
|
||||
font-weight: 500;
|
||||
margin-bottom: 10px;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.theme-panel {
|
||||
background-color: #fff;
|
||||
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
|
||||
padding: 30px;
|
||||
}
|
||||
|
||||
.theme-btn-provider {
|
||||
background-color: #fff;
|
||||
color: #333;
|
||||
min-width: 250px;
|
||||
}
|
||||
|
||||
.theme-btn-provider:hover {
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.theme-btn--primary {
|
||||
background-color: #333;
|
||||
border: none;
|
||||
color: #fff;
|
||||
min-width: 200px;
|
||||
padding: 6px 12px;
|
||||
}
|
||||
|
||||
.theme-btn--primary:hover {
|
||||
background-color: #666;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.theme-btn--success {
|
||||
background-color: #2FC98E;
|
||||
color: #fff;
|
||||
width: 250px;
|
||||
}
|
||||
|
||||
.theme-btn--success:hover {
|
||||
background-color: #49E3A8;
|
||||
}
|
||||
|
||||
.theme-form-row {
|
||||
display: block;
|
||||
margin: 20px auto;
|
||||
}
|
||||
|
||||
.theme-form-input {
|
||||
border-radius: 4px;
|
||||
border: 1px solid #CCC;
|
||||
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
|
||||
color: #666;
|
||||
display: block;
|
||||
font-size: 14px;
|
||||
height: 36px;
|
||||
line-height: 1.42857143;
|
||||
margin: auto;
|
||||
padding: 6px 12px;
|
||||
width: 250px;
|
||||
}
|
||||
|
||||
.theme-form-input:focus,
|
||||
.theme-form-input:active {
|
||||
border-color: #66AFE9;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.theme-form-label {
|
||||
font-size: 13px;
|
||||
font-weight: 600;
|
||||
margin: 4px auto;
|
||||
position: relative;
|
||||
text-align: left;
|
||||
width: 250px;
|
||||
}
|
||||
|
||||
.theme-link-back {
|
||||
margin-top: 4px;
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<title>Ocanbox IdP</title>
|
||||
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@0.9.3/css/bulma.min.css">
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.5.0/font/bootstrap-icons.css">
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@shoelace-style/shoelace@2.0.0-beta.88/dist/themes/light.css" />
|
||||
<!-- <script type="module" src="https://cdn.jsdelivr.net/npm/@shoelace-style/shoelace@2.0.0-beta.88/dist/shoelace.js"></script> -->
|
||||
|
||||
<!-- Used to hide custom components until they are defined and prevent a flash of unstyled content -->
|
||||
<style>
|
||||
*:not(:defined) { display:none }
|
||||
html, body {
|
||||
overflow-y: hidden;
|
||||
height: 100%;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<login-app></login-app>
|
||||
<script type="module" src="./build/client/App.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"install": "dotnet tool restore",
|
||||
"build": "dotnet fable src -o build/client --run vite build",
|
||||
"start": "dotnet fable watch src -s -o build/client --run vite"
|
||||
},
|
||||
"dependencies": {
|
||||
"@shoelace-style/shoelace": "^2.0.0-beta.88",
|
||||
"lit": "^2.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@web/test-runner": "^0.13.18",
|
||||
"@web/test-runner-commands": "^0.5.13",
|
||||
"vite": "^4.0.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,129 @@
|
||||
module Lit.TodoMVC.App
|
||||
|
||||
open Browser.WebStorage
|
||||
open Fable.Core.JsInterop
|
||||
open Lit
|
||||
|
||||
// importAll "@shoelace-style/shoelace/dist/themes/light.css?inline"
|
||||
importDefault "@shoelace-style/shoelace/dist/components/button/button.js"
|
||||
importDefault "@shoelace-style/shoelace/dist/components/icon/icon.js"
|
||||
importDefault "@shoelace-style/shoelace/dist/components/input/input.js"
|
||||
importDefault "@shoelace-style/shoelace/dist/components/card/card.js"
|
||||
importDefault "@shoelace-style/shoelace/dist/components/checkbox/checkbox.js"
|
||||
import "setBasePath" "@shoelace-style/shoelace/dist/utilities/base-path.js"
|
||||
|
||||
// [<Emit("setBasePath($0)")>]
|
||||
// let setBasePath (_: string): unit = jsNative
|
||||
// setBasePath "/dex/static/shoelace/dist"
|
||||
|
||||
[<LitElement("login-app")>]
|
||||
let MyApp() =
|
||||
let _ = LitElement.init(fun cfg ->
|
||||
cfg.useShadowDom <- true
|
||||
)
|
||||
|
||||
let uid, setUid = Hook.useState ""
|
||||
let amnesia, setAmnesia = Hook.useState false
|
||||
|
||||
let splitUid (x: string) =
|
||||
let s = x.Split '@'
|
||||
if s.Length = 1 then
|
||||
x, "default"
|
||||
else
|
||||
x, s[1]
|
||||
|
||||
let getTenanatAnchor tenant =
|
||||
let e = Browser.Dom.document.getElementById tenant
|
||||
if isNull e then
|
||||
Browser.Dom.document.getElementById "default"
|
||||
else
|
||||
e
|
||||
|
||||
let gotoIdentityProvider _ =
|
||||
let uid' =
|
||||
if uid = "" then
|
||||
localStorage["user_id"]
|
||||
else uid
|
||||
let user, tenant = splitUid uid'
|
||||
let a = getTenanatAnchor tenant
|
||||
let href = a.attributes[0]
|
||||
let hint =
|
||||
if href.value.Contains "?" then
|
||||
"&login_hint"
|
||||
else
|
||||
"?login_hint"
|
||||
href.value <- $"{href.value}{hint}={user}"
|
||||
if not amnesia then
|
||||
localStorage["user_id"] <- user
|
||||
a.click()
|
||||
|
||||
let onEnter e =
|
||||
let key = e?key
|
||||
if key = "Enter" then
|
||||
gotoIdentityProvider ()
|
||||
|
||||
let defaultUser =
|
||||
if isNullOrUndefined localStorage["user_id"] then
|
||||
""
|
||||
else
|
||||
localStorage["user_id"]
|
||||
// Browser.Dom.document.cookie
|
||||
// |> fun s -> s.Split ';'
|
||||
// |> Array.filter (fun s -> s.StartsWith "user_id=")
|
||||
// |> Array.tryHead
|
||||
// |> Option.map (fun s -> s.Split '=' |> Array.last)
|
||||
// |> Option.defaultValue ""
|
||||
|
||||
let toggleAmnesia _ = setAmnesia (not amnesia)
|
||||
|
||||
html $"""
|
||||
<div class="centering">
|
||||
<div @keydown={Ev(onEnter)}>
|
||||
<sl-card class="card-overview" >
|
||||
<div style="padding: 10px; width: 300px; height: 300px">
|
||||
<img
|
||||
slot="image"
|
||||
src="/dex/static/img/ob.png"
|
||||
width="290px"
|
||||
alt="Oceanbox login"
|
||||
/>
|
||||
</div>
|
||||
<sl-input placeholder="Username or email" label="User" value="{defaultUser}" clearable @sl-input={EvVal(setUid)}></sl-input>
|
||||
<div style="width: 150px; height: 50px; padding-top: 10px;">
|
||||
<sl-checkbox ?checked={not amnesia} @sl-input={Ev(toggleAmnesia)}>Remember me</sl-checkbox>
|
||||
</div>
|
||||
<div style="width: 150px; height: 50px;">
|
||||
<sl-button variant="primary" pill @click={Ev(gotoIdentityProvider)}>Next</sl-button>
|
||||
</div>
|
||||
</sl-card>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
.card-overview {{
|
||||
max-width: 400px;
|
||||
}}
|
||||
|
||||
.card-overview small {{
|
||||
color: var(--sl-color-neutral-500);
|
||||
}}
|
||||
|
||||
.card-overview [slot='footer'] {{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}}
|
||||
|
||||
.centering {{
|
||||
height: 50%%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}}
|
||||
|
||||
.centering div {{
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
}}
|
||||
</style>
|
||||
"""
|
||||
@@ -0,0 +1,12 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netstandard2.0</TargetFramework>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="App.fs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Fable.Lit" Version="1.4.1" />
|
||||
<PackageReference Include="Thoth.Json" Version="6.0.0" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -20,5 +20,7 @@ spec:
|
||||
value: true
|
||||
- name: contentType
|
||||
value: "application/json"
|
||||
- name: route
|
||||
value: /slurm-events
|
||||
scopes:
|
||||
- prod-hipster
|
||||
|
||||
@@ -20,5 +20,7 @@ spec:
|
||||
value: true
|
||||
- name: contentType
|
||||
value: "application/json"
|
||||
- name: route
|
||||
value: /slurm-events
|
||||
scopes:
|
||||
- staging-hipster
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
metadata:
|
||||
name: staging-openfga-migrate
|
||||
labels:
|
||||
helm.sh/chart: openfga-0.2.12
|
||||
app.kubernetes.io/name: openfga
|
||||
app.kubernetes.io/instance: staging
|
||||
app.kubernetes.io/version: "v1.5.9"
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
annotations:
|
||||
helm.sh/hook: post-install, post-upgrade, post-rollback, post-delete
|
||||
helm.sh/hook-delete-policy: before-hook-creation
|
||||
helm.sh/hook-weight: "-5"
|
||||
spec:
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
helm.sh/hook: post-install, post-upgrade, post-rollback, post-delete
|
||||
helm.sh/hook-delete-policy: before-hook-creation
|
||||
helm.sh/hook-weight: "-5"
|
||||
spec:
|
||||
serviceAccountName: staging-openfga
|
||||
containers:
|
||||
- name: migrate-database
|
||||
securityContext:
|
||||
{}
|
||||
image: "openfga/openfga:v1.5.9"
|
||||
args: ["migrate"]
|
||||
env:
|
||||
- name: OPENFGA_DATASTORE_ENGINE
|
||||
value: "postgres"
|
||||
- name: OPENFGA_DATASTORE_URI
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: "staging-openfga-postgresql"
|
||||
key: "uri"
|
||||
|
||||
resources:
|
||||
{}
|
||||
restartPolicy: Never
|
||||
backoffLimit: 1
|
||||
@@ -0,0 +1,20 @@
|
||||
apiVersion: v1
|
||||
stringData:
|
||||
postgres-password: tidings-guise-sternness-yummy
|
||||
uri: postgres://postgres:tidings-guise-sternness-yummy@staging-openfga-postgresql.idp.svc.cluster.local:5432/postgres?sslmode=disable
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: staging-openfga-postgresql
|
||||
namespace: idp
|
||||
type: Opaque
|
||||
---
|
||||
apiVersion: v1
|
||||
stringData:
|
||||
postgres-password: unaltered-astute-raven-sitter
|
||||
uri: postgres://postgres:unaltered-astute-raven-sitter@prod-openfga-postgresql.idp.svc.cluster.local:5432/postgres?sslmode=disable
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: prod-openfga-postgresql
|
||||
namespace: idp
|
||||
type: Opaque
|
||||
|
||||
@@ -46,6 +46,48 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"domain": "leroyseafood.com",
|
||||
"access": [
|
||||
{
|
||||
"matching": ".*@leroyseafood.com",
|
||||
"group": "/leroy",
|
||||
"roles": [ "user" ],
|
||||
"capabilities": [
|
||||
"run:transport",
|
||||
"run:sedimentation"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"domain": "leroyaurora.no",
|
||||
"access": [
|
||||
{
|
||||
"matching": ".*@leroyaurora.no",
|
||||
"group": "/leroy",
|
||||
"roles": [ "user" ],
|
||||
"capabilities": [
|
||||
"run:transport",
|
||||
"run:sedimentation"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"domain": "leroymidt.no",
|
||||
"access": [
|
||||
{
|
||||
"matching": ".*@leroymidt.no",
|
||||
"group": "/leroy",
|
||||
"roles": [ "user" ],
|
||||
"capabilities": [
|
||||
"run:transport",
|
||||
"run:sedimentation"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"domain": "serit.no",
|
||||
"access": [
|
||||
|
||||