Merge remote-tracking branch 'origin/main' into nixidy
@@ -10,7 +10,7 @@ spec:
|
|||||||
namespace: idp
|
namespace: idp
|
||||||
sources:
|
sources:
|
||||||
- repoURL: https://charts.bitnami.com/bitnami
|
- repoURL: https://charts.bitnami.com/bitnami
|
||||||
targetRevision: 18.3.4
|
targetRevision: 24.0.2
|
||||||
chart: keycloak
|
chart: keycloak
|
||||||
helm:
|
helm:
|
||||||
valueFiles:
|
valueFiles:
|
||||||
|
|||||||
@@ -90,12 +90,12 @@ spec:
|
|||||||
ingress:
|
ingress:
|
||||||
enabled: true
|
enabled: true
|
||||||
annotations:
|
annotations:
|
||||||
cert-manager.io/cluster-issuer: letsencrypt-staging
|
cert-manager.io/cluster-issuer: letsencrypt-production
|
||||||
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
||||||
atlantis.oceanbox.io/expose: internal
|
atlantis.oceanbox.io/expose: internal
|
||||||
ingressClassName: nginx
|
ingressClassName: nginx
|
||||||
hosts:
|
hosts:
|
||||||
- host: collector.adm.oceanbox.io
|
- host: opentelemetry-collector.adm.oceanbox.io
|
||||||
paths:
|
paths:
|
||||||
- path: /
|
- path: /
|
||||||
pathType: Prefix
|
pathType: Prefix
|
||||||
@@ -103,4 +103,4 @@ spec:
|
|||||||
tls:
|
tls:
|
||||||
- secretName: collector-tls
|
- secretName: collector-tls
|
||||||
hosts:
|
hosts:
|
||||||
- collector.adm.oceanbox.io
|
- opentelemetry-collector.adm.oceanbox.io
|
||||||
|
|||||||
@@ -11,6 +11,17 @@ init:
|
|||||||
enabled: false
|
enabled: false
|
||||||
image: ubuntu:rolling
|
image: ubuntu:rolling
|
||||||
command: ["/bin/sh", "-c", "true"]
|
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:
|
imagePullSecrets:
|
||||||
- name: gitlab-pull-secret
|
- name: gitlab-pull-secret
|
||||||
nameOverride: ""
|
nameOverride: ""
|
||||||
|
|||||||
@@ -17,6 +17,14 @@ init:
|
|||||||
env:
|
env:
|
||||||
- name: LOG_LEVEL
|
- name: LOG_LEVEL
|
||||||
value: "3"
|
value: "3"
|
||||||
|
- name: APP_NAME
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: metadata.name
|
||||||
|
- name: APP_NAMESPACE
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: metadata.namespace
|
||||||
|
|
||||||
imagePullSecrets:
|
imagePullSecrets:
|
||||||
- name: gitlab-pull-secret
|
- name: gitlab-pull-secret
|
||||||
|
|||||||
@@ -11,6 +11,17 @@ init:
|
|||||||
enabled: false
|
enabled: false
|
||||||
image: ubuntu:rolling
|
image: ubuntu:rolling
|
||||||
command: ["/bin/sh", "-c", "true"]
|
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:
|
imagePullSecrets:
|
||||||
- name: gitlab-pull-secret
|
- name: gitlab-pull-secret
|
||||||
nameOverride: ""
|
nameOverride: ""
|
||||||
|
|||||||
@@ -11,6 +11,17 @@ init:
|
|||||||
enabled: false
|
enabled: false
|
||||||
image: ubuntu:rolling
|
image: ubuntu:rolling
|
||||||
command: ["/bin/sh", "-c", "true"]
|
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:
|
imagePullSecrets:
|
||||||
- name: gitlab-pull-secret
|
- name: gitlab-pull-secret
|
||||||
nameOverride: ""
|
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 }}
|
containerPort: {{ .Values.service.port }}
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
env:
|
env:
|
||||||
- name: LOG_LEVEL
|
{{- toYaml .Values.env | nindent 12 }}
|
||||||
value: "3"
|
|
||||||
livenessProbe:
|
livenessProbe:
|
||||||
httpGet:
|
httpGet:
|
||||||
path: /
|
path: /
|
||||||
|
|||||||
@@ -17,6 +17,14 @@ init:
|
|||||||
env:
|
env:
|
||||||
- name: LOG_LEVEL
|
- name: LOG_LEVEL
|
||||||
value: "3"
|
value: "3"
|
||||||
|
- name: APP_NAME
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: metadata.name
|
||||||
|
- name: APP_NAMESPACE
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: metadata.namespace
|
||||||
|
|
||||||
imagePullSecrets:
|
imagePullSecrets:
|
||||||
- name: gitlab-pull-secret
|
- 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"
|
- "*-rabbitmq"
|
||||||
annotations:
|
annotations:
|
||||||
kyverno/clone: "true"
|
kyverno/clone: "true"
|
||||||
|
exclude:
|
||||||
|
any:
|
||||||
|
- resources:
|
||||||
|
annotations:
|
||||||
|
vcluster.loft.sh/controlled-by: secret/v1/GenericImport
|
||||||
- name: sync-redis-secret
|
- name: sync-redis-secret
|
||||||
generate:
|
generate:
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
@@ -44,6 +49,11 @@ spec:
|
|||||||
- "*-redis"
|
- "*-redis"
|
||||||
annotations:
|
annotations:
|
||||||
kyverno/clone: "true"
|
kyverno/clone: "true"
|
||||||
|
exclude:
|
||||||
|
any:
|
||||||
|
- resources:
|
||||||
|
annotations:
|
||||||
|
vcluster.loft.sh/controlled-by: secret/v1/GenericImport
|
||||||
- name: sync-archmaester-secret
|
- name: sync-archmaester-secret
|
||||||
generate:
|
generate:
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
@@ -63,6 +73,11 @@ spec:
|
|||||||
- "*-db-superuser"
|
- "*-db-superuser"
|
||||||
annotations:
|
annotations:
|
||||||
kyverno/clone: "true"
|
kyverno/clone: "true"
|
||||||
|
exclude:
|
||||||
|
any:
|
||||||
|
- resources:
|
||||||
|
annotations:
|
||||||
|
vcluster.loft.sh/controlled-by: secret/v1/GenericImport
|
||||||
- name: sync-archmaester-replication-secret
|
- name: sync-archmaester-replication-secret
|
||||||
generate:
|
generate:
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
@@ -82,6 +97,11 @@ spec:
|
|||||||
- prod-archmeister-replication
|
- prod-archmeister-replication
|
||||||
annotations:
|
annotations:
|
||||||
kyverno/clone: "true"
|
kyverno/clone: "true"
|
||||||
|
exclude:
|
||||||
|
any:
|
||||||
|
- resources:
|
||||||
|
annotations:
|
||||||
|
vcluster.loft.sh/controlled-by: secret/v1/GenericImport
|
||||||
- name: sync-archmaester-ca
|
- name: sync-archmaester-ca
|
||||||
generate:
|
generate:
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
@@ -101,11 +121,8 @@ spec:
|
|||||||
- prod-archmeister-ca
|
- prod-archmeister-ca
|
||||||
annotations:
|
annotations:
|
||||||
kyverno/clone: "true"
|
kyverno/clone: "true"
|
||||||
# exclude:
|
exclude:
|
||||||
# any:
|
any:
|
||||||
# - resources:
|
- resources:
|
||||||
# kinds:
|
annotations:
|
||||||
# - Secret
|
vcluster.loft.sh/controlled-by: secret/v1/GenericImport
|
||||||
# selector:
|
|
||||||
# matchLabels:
|
|
||||||
# generate.kyverno.io/clone-source: ""
|
|
||||||
|
|||||||
@@ -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
|
they are created. It will also push updates to the copied Secrets should the
|
||||||
source Secret be changed. '
|
source Secret be changed. '
|
||||||
creationTimestamp: "2024-01-15T11:58:24Z"
|
creationTimestamp: "2024-01-15T11:58:24Z"
|
||||||
name: sync-oceanbox-regcred
|
name: sync-regcred
|
||||||
spec:
|
spec:
|
||||||
admission: true
|
admission: true
|
||||||
background: true
|
background: true
|
||||||
@@ -30,10 +30,8 @@ spec:
|
|||||||
exclude:
|
exclude:
|
||||||
any:
|
any:
|
||||||
- resources:
|
- resources:
|
||||||
kinds:
|
annotations:
|
||||||
- Namespace
|
vcluster.loft.sh/controlled-by: secret/v1/GenericImport
|
||||||
names:
|
|
||||||
- "vcluster-*"
|
|
||||||
match:
|
match:
|
||||||
any:
|
any:
|
||||||
- resources:
|
- resources:
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
apiVersion: cilium.io/v2
|
apiVersion: cilium.io/v2
|
||||||
kind: CiliumNetworkPolicy
|
kind: CiliumClusterwideNetworkPolicy
|
||||||
metadata:
|
metadata:
|
||||||
name: allow-atlantis-services
|
name: allow-atlantis-services
|
||||||
namespace: {{ .Release.Namespace }}
|
namespace: {{ .Release.Namespace }}
|
||||||
@@ -15,12 +15,12 @@ spec:
|
|||||||
- matchLabels:
|
- matchLabels:
|
||||||
k8s:io.kubernetes.pod.namespace: {{ .Values.tracing.namespace | default "otel" }}
|
k8s:io.kubernetes.pod.namespace: {{ .Values.tracing.namespace | default "otel" }}
|
||||||
- toFQDNs:
|
- toFQDNs:
|
||||||
- matchName: '*.oceanbox.io'
|
|
||||||
- matchName: api.github.com
|
|
||||||
- matchName: dapr.github.io
|
- matchName: dapr.github.io
|
||||||
- matchName: gitlab.com
|
|
||||||
- matchPattern: '*.gitlab.com'
|
|
||||||
- matchPattern: "*.k1.itpartner.no"
|
|
||||||
- matchName: analytics.loft.rocks
|
- matchName: analytics.loft.rocks
|
||||||
|
# - matchName: gitlab.com
|
||||||
|
# - matchName: api.github.com
|
||||||
|
- matchPattern: "*.k1.itpartner.no"
|
||||||
|
- matchPattern: '*.oceanbox.io'
|
||||||
|
# - matchPattern: '*.gitlab.com'
|
||||||
endpointSelector:
|
endpointSelector:
|
||||||
matchLabels: {}
|
matchLabels: {}
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ spec:
|
|||||||
egress:
|
egress:
|
||||||
- toFQDNs:
|
- toFQDNs:
|
||||||
- matchName: oceanbox.io
|
- matchName: oceanbox.io
|
||||||
- matchName: hubble.srv.oceanbox.io
|
|
||||||
- matchPattern: "*oceanbox.io"
|
- matchPattern: "*oceanbox.io"
|
||||||
- matchPattern: "*.oceanbox.io"
|
- matchPattern: "*.oceanbox.io"
|
||||||
|
|
||||||
|
|||||||
@@ -14,3 +14,15 @@ spec:
|
|||||||
- ports:
|
- ports:
|
||||||
- port: "9070"
|
- port: "9070"
|
||||||
protocol: TCP
|
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 = {
|
applications.xxx = {
|
||||||
resources = {
|
resources = {
|
||||||
ciliumClusterwideNetworkPolicies = {
|
ciliumClusterwideNetworkPolicies = {
|
||||||
xxx.spec = {
|
xxx.spec =
|
||||||
};
|
{
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -6,4 +6,4 @@ spec:
|
|||||||
tracing:
|
tracing:
|
||||||
samplingRate: "1"
|
samplingRate: "1"
|
||||||
zipkin:
|
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://stig-atlantis.dev.oceanbox.io/signin-oidc'
|
||||||
- 'https://simkir-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:8080/signin-oidc'
|
||||||
|
- 'https://atlantis.local.oceanbox.io:8085/signin-oidc'
|
||||||
name: 'Atlantis dev'
|
name: 'Atlantis dev'
|
||||||
secret: 3QjfSPmAemjn34XVA2o1fvoS7I4gKvOR
|
secret: 3QjfSPmAemjn34XVA2o1fvoS7I4gKvOR
|
||||||
- id: petimeter
|
- id: petimeter
|
||||||
@@ -119,6 +120,8 @@ staticClients:
|
|||||||
- 'https://jonas-sorcerer.ekman.oceanbox.io/signin-oidc'
|
- 'https://jonas-sorcerer.ekman.oceanbox.io/signin-oidc'
|
||||||
- 'https://stig-sorcerer.ekman.oceanbox.io/signin-oidc'
|
- 'https://stig-sorcerer.ekman.oceanbox.io/signin-oidc'
|
||||||
- 'https://simkir-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'
|
name: 'Sorcerer dev'
|
||||||
secret: cyrgDr1UzhQrJn8nRVqEt9BJ9mLk3OBy
|
secret: cyrgDr1UzhQrJn8nRVqEt9BJ9mLk3OBy
|
||||||
- id: archmeister
|
- 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
|
value: true
|
||||||
- name: contentType
|
- name: contentType
|
||||||
value: "application/json"
|
value: "application/json"
|
||||||
|
- name: route
|
||||||
|
value: /slurm-events
|
||||||
scopes:
|
scopes:
|
||||||
- prod-hipster
|
- prod-hipster
|
||||||
|
|||||||
@@ -20,5 +20,7 @@ spec:
|
|||||||
value: true
|
value: true
|
||||||
- name: contentType
|
- name: contentType
|
||||||
value: "application/json"
|
value: "application/json"
|
||||||
|
- name: route
|
||||||
|
value: /slurm-events
|
||||||
scopes:
|
scopes:
|
||||||
- staging-hipster
|
- 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",
|
"domain": "serit.no",
|
||||||
"access": [
|
"access": [
|
||||||
|
|||||||