Compare commits
1 Commits
master
...
release/2.
Author | SHA1 | Date |
---|---|---|
FyloZ | 70205b7425 |
54
.drone.yml
54
.drone.yml
|
@ -1,62 +1,46 @@
|
|||
---
|
||||
global-variables:
|
||||
release: &release ${DRONE_TAG}
|
||||
environment: &environment
|
||||
DOCS_VERSION: dev-${DRONE_BUILD_NUMBER}
|
||||
DOCS_REGISTRY_IMAGE: registry.fyloz.dev/colorrecipesexplorer/docs
|
||||
DOCS_PORT: 9103
|
||||
DOCS_RELEASE: *release
|
||||
CRE_PORT: 9103
|
||||
CRE_RELEASE: ${DRONE_BRANCH##**/}
|
||||
alpine-image: &alpine-image alpine:latest
|
||||
docker-registry: &docker-registry registry.fyloz.dev
|
||||
docker-registry-repo: &docker-registry-repo registry.fyloz.dev/colorrecipesexplorer/docs
|
||||
docker-registry-repo: &docker-registry-repo registry.fyloz.dev:5443/colorrecipesexplorer/docs
|
||||
|
||||
kind: pipeline
|
||||
name: default
|
||||
name: build
|
||||
type: docker
|
||||
|
||||
steps:
|
||||
- name: set-docker-tags-latest
|
||||
image: *alpine-image
|
||||
environment:
|
||||
<<: *environment
|
||||
commands:
|
||||
- echo -n "latest" > .tags
|
||||
when:
|
||||
branch: develop
|
||||
event:
|
||||
exclude:
|
||||
- pull_request
|
||||
branch: master
|
||||
|
||||
- name: set-docker-tags-release
|
||||
image: *alpine-image
|
||||
environment:
|
||||
<<: *environment
|
||||
commands:
|
||||
- echo -n "latest-release,$DOCS_RELEASE" > .tags
|
||||
- echo -n "latest-release,$CRE_RELEASE" > .tags
|
||||
when:
|
||||
event:
|
||||
- tag
|
||||
branch: release/**
|
||||
|
||||
- name: containerize-release
|
||||
- name: containerize
|
||||
image: plugins/docker
|
||||
environment:
|
||||
<<: *environment
|
||||
settings:
|
||||
registry: *docker-registry
|
||||
repo: *docker-registry-repo
|
||||
username:
|
||||
from_secret: docker_username
|
||||
password:
|
||||
from_secret: docker_password
|
||||
when:
|
||||
event:
|
||||
- tag
|
||||
branch:
|
||||
- master
|
||||
- release/**
|
||||
|
||||
- name: deploy
|
||||
image: alpine:latest
|
||||
image: *alpine-image
|
||||
environment:
|
||||
<<: *environment
|
||||
DOCS_REGISTRY_IMAGE: *docker-registry-repo
|
||||
CRE_REGISTRY_IMAGE: *docker-registry-repo
|
||||
DEPLOY_SERVER:
|
||||
from_secret: deploy_server
|
||||
DEPLOY_SERVER_USERNAME:
|
||||
|
@ -77,8 +61,12 @@ steps:
|
|||
- ssh-keyscan -p $DEPLOY_SERVER_SSH_PORT -H $DEPLOY_SERVER >> ~/.ssh/known_hosts
|
||||
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
|
||||
- ssh -p $DEPLOY_SERVER_SSH_PORT $DEPLOY_SERVER_USERNAME@$DEPLOY_SERVER "docker stop $DEPLOY_CONTAINER_NAME || true && docker rm $DEPLOY_CONTAINER_NAME || true"
|
||||
- ssh -p $DEPLOY_SERVER_SSH_PORT $DEPLOY_SERVER_USERNAME@$DEPLOY_SERVER "docker pull $DOCS_REGISTRY_IMAGE:$DOCS_RELEASE"
|
||||
- ssh -p $DEPLOY_SERVER_SSH_PORT $DEPLOY_SERVER_USERNAME@$DEPLOY_SERVER "docker run -d -p $DOCS_PORT:80 --name=$DEPLOY_CONTAINER_NAME $DOCS_REGISTRY_IMAGE:$DOCS_RELEASE"
|
||||
- ssh -p $DEPLOY_SERVER_SSH_PORT $DEPLOY_SERVER_USERNAME@$DEPLOY_SERVER "docker pull $CRE_REGISTRY_IMAGE:$CRE_RELEASE"
|
||||
- ssh -p $DEPLOY_SERVER_SSH_PORT $DEPLOY_SERVER_USERNAME@$DEPLOY_SERVER "docker run -d -p $CRE_PORT:80 --name=$DEPLOY_CONTAINER_NAME $CRE_REGISTRY_IMAGE:$CRE_RELEASE"
|
||||
when:
|
||||
event:
|
||||
- tag
|
||||
branch: release/**
|
||||
|
||||
trigger:
|
||||
branch:
|
||||
- master
|
||||
- release/**
|
||||
|
|
|
@ -1,120 +0,0 @@
|
|||
# Created by https://www.toptal.com/developers/gitignore/api/intellij
|
||||
# Edit at https://www.toptal.com/developers/gitignore?templates=intellij
|
||||
|
||||
### Intellij ###
|
||||
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
|
||||
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
|
||||
|
||||
# User-specific stuff
|
||||
.idea/**/workspace.xml
|
||||
.idea/**/tasks.xml
|
||||
.idea/**/usage.statistics.xml
|
||||
.idea/**/dictionaries
|
||||
.idea/**/shelf
|
||||
|
||||
# AWS User-specific
|
||||
.idea/**/aws.xml
|
||||
|
||||
# Generated files
|
||||
.idea/**/contentModel.xml
|
||||
|
||||
# Sensitive or high-churn files
|
||||
.idea/**/dataSources/
|
||||
.idea/**/dataSources.ids
|
||||
.idea/**/dataSources.local.xml
|
||||
.idea/**/sqlDataSources.xml
|
||||
.idea/**/dynamic.xml
|
||||
.idea/**/uiDesigner.xml
|
||||
.idea/**/dbnavigator.xml
|
||||
|
||||
# Gradle
|
||||
.idea/**/gradle.xml
|
||||
.idea/**/libraries
|
||||
|
||||
# Gradle and Maven with auto-import
|
||||
# When using Gradle or Maven with auto-import, you should exclude module files,
|
||||
# since they will be recreated, and may cause churn. Uncomment if using
|
||||
# auto-import.
|
||||
# .idea/artifacts
|
||||
# .idea/compiler.xml
|
||||
# .idea/jarRepositories.xml
|
||||
# .idea/modules.xml
|
||||
# .idea/*.iml
|
||||
# .idea/modules
|
||||
# *.iml
|
||||
# *.ipr
|
||||
|
||||
# CMake
|
||||
cmake-build-*/
|
||||
|
||||
# Mongo Explorer plugin
|
||||
.idea/**/mongoSettings.xml
|
||||
|
||||
# File-based project format
|
||||
*.iws
|
||||
|
||||
# IntelliJ
|
||||
out/
|
||||
|
||||
# mpeltonen/sbt-idea plugin
|
||||
.idea_modules/
|
||||
|
||||
# JIRA plugin
|
||||
atlassian-ide-plugin.xml
|
||||
|
||||
# Cursive Clojure plugin
|
||||
.idea/replstate.xml
|
||||
|
||||
# SonarLint plugin
|
||||
.idea/sonarlint/
|
||||
|
||||
# Crashlytics plugin (for Android Studio and IntelliJ)
|
||||
com_crashlytics_export_strings.xml
|
||||
crashlytics.properties
|
||||
crashlytics-build.properties
|
||||
fabric.properties
|
||||
|
||||
# Editor-based Rest Client
|
||||
.idea/httpRequests
|
||||
|
||||
# Android studio 3.1+ serialized cache file
|
||||
.idea/caches/build_file_checksums.ser
|
||||
|
||||
### Intellij Patch ###
|
||||
# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721
|
||||
|
||||
# *.iml
|
||||
# modules.xml
|
||||
# .idea/misc.xml
|
||||
# *.ipr
|
||||
|
||||
# Sonarlint plugin
|
||||
# https://plugins.jetbrains.com/plugin/7973-sonarlint
|
||||
.idea/**/sonarlint/
|
||||
|
||||
# SonarQube Plugin
|
||||
# https://plugins.jetbrains.com/plugin/7238-sonarqube-community-plugin
|
||||
.idea/**/sonarIssues.xml
|
||||
|
||||
# Markdown Navigator plugin
|
||||
# https://plugins.jetbrains.com/plugin/7896-markdown-navigator-enhanced
|
||||
.idea/**/markdown-navigator.xml
|
||||
.idea/**/markdown-navigator-enh.xml
|
||||
.idea/**/markdown-navigator/
|
||||
|
||||
# Cache file creation bug
|
||||
# See https://youtrack.jetbrains.com/issue/JBR-2257
|
||||
.idea/$CACHE_FILE$
|
||||
|
||||
# CodeStream plugin
|
||||
# https://plugins.jetbrains.com/plugin/12206-codestream
|
||||
.idea/codestream.xml
|
||||
|
||||
# Azure Toolkit for IntelliJ plugin
|
||||
# https://plugins.jetbrains.com/plugin/8053-azure-toolkit-for-intellij
|
||||
.idea/**/azureSettings.xml
|
||||
|
||||
# End of https://www.toptal.com/developers/gitignore/api/intellij
|
||||
|
||||
# Mkdocs output
|
||||
site/
|
|
@ -1,5 +0,0 @@
|
|||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
# Editor-based HTTP Client requests
|
||||
/httpRequests/
|
|
@ -1,12 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="WEB_MODULE" version="4">
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<excludeFolder url="file://$MODULE_DIR$/temp" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/tmp" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
|
@ -1,8 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/documentation.iml" filepath="$PROJECT_DIR$/.idea/documentation.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
|
@ -1,6 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
|
@ -16,10 +16,10 @@ RUN mkdocs build
|
|||
|
||||
|
||||
FROM nginx:mainline-alpine
|
||||
WORKDIR /usr/bin/
|
||||
WORKDIR /usr/bin/cre/
|
||||
|
||||
COPY nginx.conf /etc/nginx/nginx.conf
|
||||
COPY --from=build /usr/src/site/ .
|
||||
COPY --from=build /usr/src/site/ docs
|
||||
|
||||
EXPOSE 80
|
||||
|
||||
|
|
|
@ -1,91 +0,0 @@
|
|||
# Groupes par défaut
|
||||
|
||||
Color Recipes Explorer permet de définir un groupe d'utilisateur par défaut dans un navigateur. Cette fonctionnalité
|
||||
permet aux utilisateurs utilisant ce navigateur d'être automatiquement connectés au système lors du chargement de l'
|
||||
application. Après la connexion, ces utilisateurs auront les mêmes permissions que le groupe par défaut.
|
||||
|
||||
Lorsqu’aucun utilisateur n'est connecté, le navigateur tentera de se connecter au groupe par défaut au chargement de
|
||||
l'application. Si le navigateur a un jeton de connexion associé et que celui-ci est valide, l'utilisateur du navigateur
|
||||
sera connecté en tant que le groupe par défaut. Si ces deux critères ne sont pas respectés, la tentative de connexion
|
||||
échouera.
|
||||
|
||||
## Définir un groupe par défaut
|
||||
|
||||
Il est possible de définir le groupe par défaut du navigateur dans la liste des groupes (Administration > Groupes). Pour
|
||||
ce faire, il suffit d'appuyer sur le bouton «Définir par défaut» du groupe désiré et d'entrer un nom unique au
|
||||
navigateur dans la boite de dialogue qui s'affiche. En appuyant sur le bouton «Continuer», le nom est validé, puis un
|
||||
jeton de connexion unique est assigné au navigateur.
|
||||
|
||||
### Critères de validation
|
||||
|
||||
Pour être valide, le nom du navigateur doit être unique.
|
||||
|
||||
## Gestion des jetons de connexion
|
||||
|
||||
### Connaître le groupe par défaut d'un navigateur
|
||||
|
||||
Après la connexion automatique au groupe, le nom du navigateur et le nom du groupe par défaut s'afficheront à la gauche
|
||||
du logo de l'application, en haut à droite.
|
||||
|
||||
Si l'utilisateur s'est connecté manuellement au système (et non pas à un groupe par défaut), il est seulement possible
|
||||
de
|
||||
le savoir si cet utilisateur est un administrateur.
|
||||
Pour ce faire, le groupe par défaut sera affiché dans la liste des groupes d'utilisateurs (Administration > Groupes).
|
||||
Si un jeton de connexion est présent dans le navigateur, le bouton "Définir par défaut" ne sera pas présent et le
|
||||
texte "Groupe par défaut" sera affiché à sa place dans la ligne du groupe par défaut du navigateur.
|
||||
|
||||
### Voir tous les jetons de connexion
|
||||
|
||||
Tous les jetons de connexion enregistrés dans le système sont listés dans une table à: Administration > Ordinateurs.
|
||||
Seuls les administrateurs peuvent accéder à cette page.
|
||||
|
||||
Chaque ligne de la table représente un seul jeton et ces informations sont listées:
|
||||
|
||||
* Identifiant: L'UUID (Universal Unique Identifier) du jeton. C'est la seule information stockée dans les navigateurs.
|
||||
* Nom: Le nom unique du jeton.
|
||||
* Groupe: Le nom du groupe auquel les utilisateurs utilisant ce jeton seront connectés.
|
||||
* État: Si le jeton est activé ou désactivé.
|
||||
|
||||
De plus, il est possible de désactiver (ou d'activer) ou de supprimer chaque jeton.
|
||||
Désactiver un jeton permet d'empêcher la connexion temporairement jusqu'à sa réactivation, tandis que la suppression
|
||||
l'empêche définitivement.
|
||||
|
||||
### Suppression d'un jeton de connexion
|
||||
|
||||
Supprimer un jeton de connexion permet d'empêcher toutes les connexions l'utilisant définitivement. Les jetons supprimés
|
||||
ne sont pas affichés dans la liste des jetons.
|
||||
|
||||
Dans la liste des jetons de connexion (Administration > Ordinateurs), appuyer sur le bouton «Supprimer» de la ligne du
|
||||
jeton à supprimer.
|
||||
Une boite de confirmation s'affichera. Après confirmation, le jeton sera supprimé* du système et ne sera plus utilisable
|
||||
immédiatement.
|
||||
|
||||
### Désactivation d'un jeton de connexion
|
||||
|
||||
Désactiver un jeton de connexion permet d'empêcher toutes les connexions l'utilisant temporairement. Les jetons
|
||||
désactivés sont affichés dans la liste des jetons.
|
||||
|
||||
Dans la liste des jetons de connexion (Administration > Ordinateurs), appuyer sur le bouton «Désactiver» de la ligne du
|
||||
jeton à désactiver. Le jeton sera immédiatement désactivé et ne sera plus utilisable.
|
||||
|
||||
\* Le jeton sera toujours stocké dans la base de données, mais sera marqué comme étant supprimé. Cela permet d'assurer
|
||||
qu'aucun
|
||||
futur jeton ne soit créé en utilisant un identifiant supprimé, ce qui serait une faille de sécurité. Ces jetons ne sont
|
||||
pas accessibles depuis l'interface utilisateur.
|
||||
|
||||
### Assignation d'un jeton de connexion
|
||||
|
||||
Par souci de sécurité, les jetons de connexion peuvent seulement être assignés lors de leur création.
|
||||
Les jetons existants peuvent seulement être désactivés ou supprimés.
|
||||
Ainsi, si un des jetons est compromis, il suffit de le supprimer pour empêcher toutes les connexions avec celui-ci,
|
||||
et seulement un des navigateurs peut être impacté.
|
||||
|
||||
## Stockage et format des jetons de connexion
|
||||
|
||||
Les jetons de connexion utilisent le format [JWT](https://jwt.io/) signé (JWS). Ce format permet de garantir l'intégrité
|
||||
du jeton,
|
||||
c'est-à-dire que l'utilisation d'un jeton créé ou modifié par un tiers parti provoquera l'échec de la connexion.
|
||||
|
||||
Ces jetons sont stockés dans les cookies du navigateur, sous le nom ```Group-Token```. Ainsi, ils ne seront pas
|
||||
supprimés à la fermeture du
|
||||
navigateur ou de l'ordinateur.
|
|
@ -7,7 +7,7 @@ events {
|
|||
http {
|
||||
server {
|
||||
listen 80;
|
||||
root /usr/bin;
|
||||
root /usr/bin/cre;
|
||||
include /etc/nginx/mime.types;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue