groups doc
This commit is contained in:
@@ -35,7 +35,8 @@ docker-compose -f docker-compose.yml up --build
|
|||||||
On kdoorpi override `KDOORPI_API_ALLOWED`, `KDOORPI_API_LONGPOLL` environment variables
|
On kdoorpi override `KDOORPI_API_ALLOWED`, `KDOORPI_API_LONGPOLL` environment variables
|
||||||
to redirect requests to your dev instance.
|
to redirect requests to your dev instance.
|
||||||
|
|
||||||
# Slack bot
|
# Deployment
|
||||||
|
## Slack credentials
|
||||||
1. https://api.slack.com/apps → Create new app → From scratch
|
1. https://api.slack.com/apps → Create new app → From scratch
|
||||||
1. Verification Token as `SLACK_VERIFICATION_TOKEN`
|
1. Verification Token as `SLACK_VERIFICATION_TOKEN`
|
||||||
1. App home → Bot user
|
1. App home → Bot user
|
||||||
@@ -47,3 +48,6 @@ to redirect requests to your dev instance.
|
|||||||
<!-- `incoming-webhook` -->
|
<!-- `incoming-webhook` -->
|
||||||
1. Add commands. Request URL `https://doorboy-proxy.k-space.ee/slack-open`
|
1. Add commands. Request URL `https://doorboy-proxy.k-space.ee/slack-open`
|
||||||
1. Incoming Webhooks → assign to channel -> Webhook URL as `SLACK_DOORLOG_CALLBACK`
|
1. Incoming Webhooks → assign to channel -> Webhook URL as `SLACK_DOORLOG_CALLBACK`
|
||||||
|
|
||||||
|
## OIDC groups
|
||||||
|
Assumes `k-space:floor` and `k-space:workshop`, same in inventory-app.
|
||||||
|
@@ -21,8 +21,6 @@ monitor(app).expose_endpoint()
|
|||||||
DOORBOY_SECRET_FLOOR = os.environ["DOORBOY_SECRET_FLOOR"]
|
DOORBOY_SECRET_FLOOR = os.environ["DOORBOY_SECRET_FLOOR"]
|
||||||
# API key for godoor controllers authenticating to k-space:workshop
|
# API key for godoor controllers authenticating to k-space:workshop
|
||||||
DOORBOY_SECRET_WORKSHOP = os.environ["DOORBOY_SECRET_WORKSHOP"]
|
DOORBOY_SECRET_WORKSHOP = os.environ["DOORBOY_SECRET_WORKSHOP"]
|
||||||
FLOOR_ACCESS_GROUP = os.getenv("FLOOR_ACCESS_GROUP", "k-space:floor")
|
|
||||||
WORKSHOP_ACCESS_GROUP = os.getenv("WORKSHOP_ACCESS_GROUP", "k-space:workshop")
|
|
||||||
|
|
||||||
MONGO_URI = os.environ["MONGO_URI"]
|
MONGO_URI = os.environ["MONGO_URI"]
|
||||||
|
|
||||||
@@ -61,9 +59,9 @@ async def view_doorboy_uids(request):
|
|||||||
# authorize
|
# authorize
|
||||||
key = request.headers.get("KEY")
|
key = request.headers.get("KEY")
|
||||||
if key == DOORBOY_SECRET_FLOOR:
|
if key == DOORBOY_SECRET_FLOOR:
|
||||||
users = kube.users_with_group(FLOOR_ACCESS_GROUP)
|
users = kube.users_with_group("k-space:floor")
|
||||||
elif key == DOORBOY_SECRET_WORKSHOP:
|
elif key == DOORBOY_SECRET_WORKSHOP:
|
||||||
users = kube.users_with_group(WORKSHOP_ACCESS_GROUP)
|
users = kube.users_with_group("k-space:workshop")
|
||||||
else:
|
else:
|
||||||
print("WARN: unknown door token in /allowed")
|
print("WARN: unknown door token in /allowed")
|
||||||
return "unknown doorboy secret token", 403
|
return "unknown doorboy secret token", 403
|
||||||
|
@@ -3,7 +3,7 @@ from typing import List, Tuple
|
|||||||
|
|
||||||
from kubernetes import client, config
|
from kubernetes import client, config
|
||||||
|
|
||||||
OIDC_USERS_NAMESPACE = os.getenv("OIDC_USERS_NAMESPACE")
|
OIDC_USERS_NAMESPACE = os.environ["OIDC_USERS_NAMESPACE"]
|
||||||
|
|
||||||
|
|
||||||
def users_with_group(group: str) -> List[str]:
|
def users_with_group(group: str) -> List[str]:
|
||||||
|
@@ -21,10 +21,10 @@ services:
|
|||||||
|
|
||||||
doorboy_proxy:
|
doorboy_proxy:
|
||||||
environment:
|
environment:
|
||||||
|
OIDC_USERS_NAMESPACE: passmower
|
||||||
DOORBOY_SECRET_FLOOR: "0123456789"
|
DOORBOY_SECRET_FLOOR: "0123456789"
|
||||||
DOORBOY_SECRET_WORKSHOP: "9999999999"
|
DOORBOY_SECRET_WORKSHOP: "9999999999"
|
||||||
FLOOR_ACCESS_GROUP: "k-space:floor"
|
SLACK_VERIFICATION_TOKEN: DEV
|
||||||
WORKSHOP_ACCESS_GROUP: "k-space:workshop"
|
|
||||||
SLACK_DOORLOG_CALLBACK: DEV
|
SLACK_DOORLOG_CALLBACK: DEV
|
||||||
SLACK_CHANNEL_ID: CDL9H8Q9W
|
SLACK_CHANNEL_ID: CDL9H8Q9W
|
||||||
env_file: .env
|
env_file: .env
|
||||||
|
Reference in New Issue
Block a user