Skip to content
SecDevOps Documentation
AO GCP
Initializing search
SecDevOps Documentation
Welcome 👊
Hetzner Meeting 25.6.2026 — CEO notes
Open file - Security Warning
City Environment
City Environment
Burp tests for TMS
Investigate LB limits for RPC calls
TMS Booking application
TMS Confidential backends
TMS Customer UUIDs and index numbers
TMS: Disaster recovery
TMS Dynava
TMS: How to create Postgres -> BigQuery sync connection with Airbyte
TMS Kela SFTP
TMS Manage
TMS Planner application
TMS Read-replica
TMS: Vinka
TMS database connection limits
TMS: tms-test
tms-backends-stable-744893
Operating procedures
Operating procedures
City Logistics releases
TMS Databases
TMS Databases
Google profiling (tms-drivers connection leak)
Standard Operating Procedure (SOP): TMS Organization Data Deletion
TMS database relations to GUI terms
TMS view tables
tms_feedback
tms_planner
tms_reports
TMS Common database queries
TMS Common database queries
TMS: stuck bill_export
TMS: stuck or missing trips
Tms booking
Tms booking
SELECT customer details->travel_area
SELECT customer travel card information
SELECT customer_transport_account details for leaving customer
SELECT customer_transport_account.account_type
SELECT index from trip_bill.bill JSON
Search vehicle.vehicle phone numbers from JSON columns
UPDATE bookings with broken state
Tms drivers
Tms drivers
SELECT driver FULL DECRYPTED
tms_drivers UPDATE driver details
tms_drivers decrypt driver detail database cells
tms_drivers driver SELECT search queries
Tms fleet
Tms fleet
SELECT & UPDATE agreement.assistance_addition values
SELECT & UPDATE agreement.monthly_fee
SELECT & UPDATE agreement.valid_from
SELECT & UPDATE agreement.valid_until
SELECT & UPDATE shift_agreement.valid_from
SELECT agreement FULL table
SELECT company FULL table
SELECT vehicle FULL table
UPDATE agreement.price_per_km
UPDATE agreement.price_per_km_elevated_tier_1
UPDATE agreement.stair_climber_addition
UPDATE agreement.start_fee_elevated
UPDATE agreement.start_fee_normal
UPDATE agreement.stretcher_addition
UPDATE agreement.wait_fee_per_minute
UPDATE trip_bill.bill->'operator_fees' (VAT) inside of the bill JSON
TMS KEPO
TMS KEPO
Certificate
Hetzner environment
Hetzner environment
Road
City
City
Cost comparison between gcp and hetzner configuration
Incidents
Incidents
Auth0 SendGrid SMTP authentication failure
Auth0 SendGrid SMTP authentication failure
Auth0 cannot send email through SendGrid — 451 Authentication failed: Could not authenticate
Wazuh false positive
Wazuh false positive
Issue
Runbook: Wazuh Rule 510 "Trojaned version of file detected" — Coreutils False Positives
Internal
Internal
Devops
Devops
DELL: BIOS update for Linux
Mac disk encryption - File Vault
Yubikey
Ahola Digital User Management
Ahola Digital User Management
Lost or stolen device
Adi New User
Adi New User
Android Mobile device: how to enable work profile
Creating a new admin user to backends
Google's Services "You don't have access" problem (Drive, Gmail, Admin etc.)
Alejandro test
Alejandro test
TEST 2 file empty boy
Event Product Service notes
Event Product Service notes
Google SRE Masterclass 2024
Issuesproblems
Issuesproblems
AO distance and ebooking issue
Untitled Page
Vehco server issues
Incidents
Incidents
25.10.2023 - TMS Stable machine type update
License reporting
License reporting
Arrow ArrowSphere
Crayon CloudIQ
Machines
Machines
adi-devops-ci-instance-stable-1
devops.4
tms-backend-1b-nightly
Core servers
Core servers
Core servers: creating a new core server
Proxmox (A.I. on prem server)
Proxmox (A.I. on prem server)
Deploy Microsoft Defender Endpoint on Linux
Install Tailscale on LXC
Install Tailscale on workstation
Setting VM/LXC automatic backups
Devops openvpn & devops ca machine details
Devops openvpn & devops ca machine details
Devops OpenVPN Installation process
Pg databases
Pg databases
pg-databases-stable
Operating procedures
Operating procedures
Application releases
Cbooking DB transfer
Creating a swap file
Deploy new GCP linux server
Google Drive: Attracs Public [GREEN], Company [YELLOW] and Devops [RED]
How to run bootstraps for server setup
How to start ubuntu via live-ubuntu
Increasing disk size and partitions in a Linux environment
Information requests
Mailboxes for next-booking-assistant
Microsoft AD login
Mounting a GCS bucket to a Linux machine
Running node migrations manually
SLI and SLO
SSH keys
Security updates
Troubleshooting Confidential Computing environment
VM Manager Patching Guide — Taxi Backend (Nightly)
AI Tools
AI Tools
AI Tools: ClickUp AI
AI Tools: Exafunction Codeium
AI Tools: Google Gemini
AI Tools: Microsoft Copilot
AI Tools: OpenAI ChatGPT
Auditing
Auditing
Audit logs review (internal)
Access Reviews (internal)
Access Reviews (internal)
run_access_google_db.yml: GCP Database Access Reviews (internal)
Database stuff
Database stuff
Changing sequences ownership
Queries for db creation
ORY
ORY
Ahola Digital Auth ORY
Azure connection token
tms-booking customers (dev/old) ORY
Security
Security
External Key Management
YubiKey hardware authentication
Terraform
Terraform
Terraform Best Practices
Terraform: How to import existing resources
Terraform Service Account
Systems and Services
Systems and Services
AholaDigitalplaybook quartz
Alteryx
Ansible
Big Query
Cargo Safety
Cloud Spanner
Confidential Computing VM
DNS Made Easy
Datastream -> Bigquery -> Power Bi
Fortinet VPN
HAProxy
HERE maps
ISECure / wscli
Memcached
Message Brokers (pub/sub)
Monitoring and Logging
Office network (aholadigital wifi)
SSO
Slack troubleshooting
Supervisor errors
Systems and Services template
AWX (Ansible)
AWX (Ansible)
AWX (Ansible): 4. AWX Configurations basics
minicube - awx
Archive old instruction for backup restore on new server and upgrading
Archive old instruction for backup restore on new server and upgrading
AWX (Ansible): AWX Install
AWX (Ansible): AWX how to migrate from on-permise to hetzner
AWX: AWX Screen shots before update
AWX restart
AWX (Ansible) 2. AWX Update steps
AWX (Ansible) 2. AWX Update steps
AWX (Ansible): 2. AWX Update steps: preparation
AWX (Ansible) 3. AWX update steps after 17.0.0 minicube
AWX (Ansible) 3. AWX update steps after 17.0.0 minicube
AWX minicube - recreate
Airbyte
Airbyte
Airbyte: Creating new table syncs
Airbyte: modify last sync start time
How to add new tables to an existing Airbyte sync
How to make Airbyte connections
How to re-sync fresh Airbyte data in case of e.g. corrupted or duplicate data
Install update investigate
Install update investigate
Clean install
airbyte update steps
Clean Install AirByte 64.1 helm
Clean Install AirByte 64.1 helm
configurations
Setup with ABCLT Currently in use
Setup with ABCLT Currently in use
plan for testing
Apache camel
Apache camel
Adi-Camel
EDI Helper
Edi-helper nightly and edi-helper-grpc
SFTP service docker
adi-camel configs
Investigations
Investigations
To do 1v:
To do final 2v:
click up logs what I find about camel.
stuff
Apple certificates
Apple certificates
Renew apple cert in Google Admin console
Auth0
Auth0
Auth0: Errors
Auth0: Taksi Helsinki
Auth0: how to fetch API key
Auth0: How to generate API keys for customer org usage
Changing AUTH0 user email
Aleksandar superset tests
Aleksandar superset tests
app give access to login.
CICD
CICD
CI/CD: Github and GCP Artifact Registry
Cloud Run ClamAV
Cloud Run ClamAV
ClamAV with Terraform
Possible Implementations multiple projects
permissions
Databases
Databases
Connecting to a database
Postgres
Postgres
Postgres: Installing a new extension
Postgres PG_STAT_STATEMENTS
Postgres: fix incorrect view table ownership
Postgres: grant yourself superuser privileges
Postgres Manipulate JSON rows
Postgres Manipulate JSON rows
Postgres: Query to remove a single JSON key from an array object
Postgres: SELECT (list) a JSON-type row's keys separately
Dependency Track
Dependency Track
Dependency-Track: Password validator tool
Dependency-Track: Troubleshooting
Dependency-Track: Update portfolio
Updating Dependency-Track
Devops OpenVPN
Devops OpenVPN
Create a Devops VPN identity / certificate
Docker
Docker
Docker: how to save docker images
Docusaurus
Docusaurus
Docusaurus build crash
Github
Github
Adding external users to Github
Google workspace
Google workspace
Gmail
Gmail
Company group incoming restriction gmail
DKIM setup for gmail
DMARC setup for gmail
Gmail footer append
SPF setup for gmail
Grafana
Grafana
Grafana: Add new users
Grafana Alloy
Grafana: Creating new notifications (alerts)
Grafana Faro
Grafana: Steps for implement
Grafana management /setup /deploy/ update/ new server metric.
Grafana migration from old Hetzner to Hetzner Cloud
Grafana: testing_draft
Manage
Manage
Manage: Troubleshooting users login issues
Manage: re-activating a deleted external user
Manage Creating a new organization
Manage Creating a new organization
Manage: Stable release
Manage: TMS city configuration
Managevisor
Managevisor
Managevisor: Application configs
Managevisor: Creating or updating managevisor information (servers)
Managevisor: Deploying mobile applications
Managevisor: Giving access to a new user
Managevisor: Managevisor restart
Managevisor: New app documentation (needs review)
Managevisor: Starting and stopping services
Managevisor New applications Revised documentation
Managevisor New applications Revised documentation
Managevisor: New applications: Legacy documentation
N8N
N8N
N8N automated DevOps documentation backup
SSL certificates
SSL certificates
SSL Certificate list
SSL certificate usage
SSL certificate renewals
SSL certificate renewals
Renew Digicert Certificate
SSL certificate renewals: *.aholadigital.com
SSL certificate renewals: *.online.aholadigital.com
SSL certificate renewals: Current process (2026 — Let's Encrypt + Vault, all wildcards)
SSL certificate renewals: Meshmoon
SSL certificate renewals: aholatransport.com
SSL certificate renewals: atspecial.fi
SSL certificate renewals: online2.attracs.com
SSL certificate renewals attracs.com
SSL certificate renewals attracs.com
SSL certificate renewals: Updating certificates attracs/ahola in Hetzner
SecurityOnion
SecurityOnion
Admin
Installing
Monitoring
Sendgrid
Sendgrid
How to create API keys in Sendgrid
Sendgrid keys
Create inbound parse and security
Create inbound parse and security
Short summary for creation
Superset
Superset
Adding new superset instances
Adding superset users
Superset installation
Superset upgrade
Updated superset (new deployment)
Updated superset (new deployment)
1. Ansible
Steps to setup
Supervisor
Supervisor
Supervisor: Deploying applications
Supervisor: OOM
Supervisor: Organization-specific application configuration
Supervisor: Updating Managevisor services
Supervisor: Updating an application on host
Supervisor: Updating list of applications on a host
Syncthing
Syncthing
Syncthing: Configuring a new remote device for sharing and syncing
Syncthing: Installation
Teleport Zero trust VPN
Teleport Zero trust VPN
Teleport: Session recording
VPN: 0. Admin Commands cli
Teleport Zero trust VPN 3. Upgrade update
Teleport Zero trust VPN 3. Upgrade update
Cluster update
Teleport Zero trust VPN sec
Teleport Zero trust VPN sec
SSO GitHub
Teleport teleport ssh, awx
Teleport teleport ssh, awx
Teleport Zero trust VPN: teleport ssh, awx: testing1
VPN 1. Create users and rules
VPN 1. Create users and rules
Rules
VPN 2. Access
VPN 2. Access
Teleport Zero trust VPN: 2. Access: Applications: users
VPN 2. Access Applications, API's
VPN 2. Access Applications, API's
Teleport Zero trust VPN: 2. Access: Applications: tsh cli
VPN 2. Access Databases
VPN 2. Access Databases
VPN: 2. Access: Databases: GCP SQL
VPN 2. Access Databases Postgres
VPN 2. Access Databases Postgres
VPN: 2. Access: Databases: Postgres: Database service
VPN 2. Access Databases Postgres pgAdmin access
VPN 2. Access Databases Postgres pgAdmin access
VPN: 2. Access: Databases: Postgres: pgAdmin access: install tsh
VPN 2. Access Machine
VPN 2. Access Machine
VPN: 2. Access: Machine: Ubuntu
VPN 2. Access Machine Windows
VPN 2. Access Machine Windows
VPN: 2. Access: Machine: Windows: Install
VPN 2. Access Machine ID
VPN 2. Access Machine ID
VPN: 2. Access: Machine ID ??: 1
Valhalla & Vroom
Valhalla & Vroom
Known issues
Vault (Hashicorp)
Vault (Hashicorp)
GCP Vault (old vault)
Hetzner Vault servers
Set up old vault connection
Vault (Hashicorp): Whitelisting new instances
Vault Hetzner GCP
commands
Hetzner Vault (new vault)
Hetzner Vault (new vault)
-vaultHetzner
Wazuh
Wazuh
Auditor explain
Rules
Wazuh API: (delete old agent)
Wazuh: Requirements
Wazuh: install
Wazuh: settings
config file
Troubleshooting
Troubleshooting
steps
Wazuh GCP integration
Wazuh GCP integration
GCP Logs Router sink
Wazuh security
Wazuh security
Wazuh: security: Install add new Agent with password key
Zabbix
Zabbix
Info
Install Zabbix agent 2 to Linux server
Install Zabbix agent 2 to Windows Server
Slack integration configs
Zabbix Server maintaining
e Mail
e Mail
Google: How to create a shared inbox
Tools on Local
Tools on Local
Delphi Dev env on VMWARE Workstation
Git pre-commit hook
Git-reviewer with ollama
How to Install Forticlient for Ubuntu 22.04
How to install and use git and Github
Install dock driver for ubuntu
Installing Docker on local
Terraform setup
Platforms
Platforms
Hetzner on-prem
Azure
Azure
Create Azure account
GCP
GCP
GCP Systems and Services
GCP Systems and Services
GCP Cloud Source Repositories
GCP Logging
GCP Managed Instance Groups
GCP Secret Manager
GCP Big Query
GCP Big Query
GCP BQ: How to give view permissions to datasets
GCP Cloud Armor
GCP Cloud Armor
GCP Cloud Armor Geoblocking rules
GCP Cloud Armor JSON parsing
GCP Cloud Armor preconfigured WAF rule 8 kb inspection limit
GCP CloudSQL
GCP CloudSQL
GCP CloudSQL Automated Database Backups
GCP CloudSQL: Changing the internal network of a database instance
GCP CloudSQL Database Recovery
GCP CloudSQL: Enterprise vs Enteprise Plus
GCP CloudSQL: Exporting a database from CloudSQL
GCP CloudSQL Manual Database backups
GCP CloudSQL Read-replica instance
GCP CloudSQL database connection
GCP CloudSQL instance
GCP CloudSQL Query Insights
GCP CloudSQL Query Insights
Cloud SQL Query Insights permissions
GCP CloudSQL Active Query Analysis
GCP Confidential Compute (CC)
GCP Confidential Compute (CC)
GCP CC Integrity Monitoring failure modes
GCP Instances (Virtual Machines)
GCP Instances (Virtual Machines)
GCP: Reverting/rollback an instance to a snapshot
GCP Load Balancer
GCP Load Balancer
GCP Load Balancer: HTTP-to-HTTPS redirect
GCP Load Balancer: Migrating from classic to modern LB
GCP Load Balancer Identity Aware Proxy (IAP)
GCP Load Balancer Identity Aware Proxy (IAP)
GCP LB IAP: Troubleshooting
GCP Ops Agent
GCP Ops Agent
GCP Ops Agent Logging
GCP Ops Agent: Troubleshooting
GCP: Updating the agent
GCP management
GCP management
GCP AO Plan
GCP: Connecting to instances
GCP projects
Hetzner Cloud
Hetzner Cloud
Hetzner Could Servers
Hetzner configs
Untitled Page
Disk space clean up
Disk space clean up
hetzner-backend1 free disk clear
hetzner-backend2 free disk space
R&D environment
R&D environment
Palbassador
Tailorframe
Tailorframe
Database sync to bigquery
Moreutils
Moreutils
moreutils — Research & Recommendation
Road Environment
Road Environment
Database Creation, Ownership, and Permissions Automation Guide
Database migration
AO
AO
AO MSSQL Database restore (Azure)
AO Rclone
AO monitoring
AO online-api.attracs.com
AVD Login Instructions to Attracs Online
AO External
AO External
AO Patch
AO update
AO GCP
AO GCP
Elisa Terraform onboarding
AO GCP Environment
AO GCP Environment
AO Access
AO Architect
AO DB Validator
AO Introduction
AO Monitoring & Alerting
Building AO
Create AO RestServer and Load Balancer
Create new host server
Environment permissions
Evolution script
Update EdgeWebview2
Windows license activation problem
AO Clients
AO Clients
Ahola & Special
Apps what client uses
Externals
AO File and Database backup
AO File and Database backup
DB Backup
GCP AO File backups
AO GCP Infrastructure
AO GCP Infrastructure
AO Cloud Armor
AO Firewall
AO Integrations
AO Load Balancers
AO Port Definitions
AO Servers
AO Update management
Cloud SQL
Cloud SQL
AO Database datamasking
AO Database optimization
AO SQL Instances and Databases
Cloud SQL Automated Database Backups
Cloud SQL Manual Database backups
SQL Database Recovery
Policies
Policies
2-way trust
GCP AD - Password policy
RDS policies
AO GCP Release Deployments
AO GCP Release Deployments
Release task template
AO Logging, Monitoring, Alerting
AO Logging, Monitoring, Alerting
AO Logging
AO-logs
Resolving alerts
ToDo List of AO monitoring and alerting
Windows logs with OPS-Agent
AO Patch
AO Patch
Automated build and patch (Ahola TIP)
AO Problems
AO Problems
Client Problems with MAPS
How to end user session and process when patching client
Open .xml files in IE with client
Reset AO user RDP-Profile
Windows Protected your PC
AO SMB Volume
AO SMB Volume
How to create and connect NetApp-Volumes
AO VPN tunnel
AO VPN tunnel
GCP - Azure tunnel
Attracs Online
Attracs Online
Datapump
Datapump
Licensing Server
List of Datapumps
Run Datapump
User Profile Disk
RDS Collections
RDS Collections
Can't publish RemoteApp
Software
Software
AO Servers
Client
Distance Calculator
Forklift
Service ID & OSS
Biztalk
Biztalk
Biztalk -> Camel SFTP
Biztalk Integration Customs
Biztalk Integrations Firewall & Cloud Armor configurations (Whitelist)
Extend windows local disk
Broker and GW's
Broker and GW's
RDP - Gateway connection handling
PTVxServer
PTVxServer
Backend configurations for PTVx
Configure PTV Service for used by AO
PTV web service configs in AO servers/netapp
AO GCP nightly env.
AO GCP nightly env.
Server as a service in GCP AO
EazyTMS
EazyTMS
Development
EazyTMS AO nightly daily database update
Removing K6 generated data from eazy_tms_nightly
infra
ROAD PTV xServer
ROAD PTV xServer
PTV xServer 2v
PTV xServer: Installing Maps
PTV xServer: Testing Process
PTV xServer: license expire / network problem
ptv problems
Road web applications
Road web applications
Cargo-safety - Intelligence Service Update Guide
ROAD: Pallet-labels
ROAD: Road services
SQL
Untitled Page
Security
Security
Statement of Applicability — Use of Cryptography
Table of contents
Subpages
AO GCP
Subpages
AO GCP Environment
AO GCP nightly env.
Elisa Terraform onboarding