:8080 {
    handle /health {
        respond 200
    }

    # ask.xn--2dk.xyz - Natural language to SQL TUI
    ask.xn--2dk.xyz {
        @websocket {
            header Connection *Upgrade*
            header Upgrade websocket
        }

        handle @websocket {
            reverse_proxy localhost:7682 {
                flush_interval -1
            }
        }

        handle {
            reverse_proxy localhost:7682 {
                flush_interval -1
            }
        }
    }

    # db.xn--2dk.xyz - DuckDB SQL shell
    handle /login {
        reverse_proxy 127.0.0.1:8081
    }

    handle /query {
        reverse_proxy 127.0.0.1:8081
    }

    @websocket {
        header Connection *Upgrade*
        header Upgrade websocket
    }

    handle @websocket {
        reverse_proxy localhost:7681 {
            flush_interval -1
        }
    }

    handle {
        forward_auth 127.0.0.1:8081 {
            uri /auth
            copy_headers Cookie
        }
        reverse_proxy localhost:7681 {
            flush_interval -1
        }
    }

}
