snapshot of https://github.com/ory/kratos.git (master, 2026-09-15; blobs > 131072B omitted)
Some checks failed
CI / Run tests and lints (push) Failing after 29s
CI / Build CLI docs (push) Has been skipped
CI / Run Playwright end-to-end tests (mysql) (push) Failing after 3s
CI / Run Playwright end-to-end tests (postgres) (push) Failing after 2s
CI / Run Playwright end-to-end tests (sqlite) (push) Failing after 3s
CodeQL / Analyze (go) (push) Failing after 4s
CodeQL / Analyze (javascript) (push) Failing after 3s
Docker Image Scanners / scanners (push) Failing after 4s
Synchronize Issue Labels / Synchronize Issue Labels (push) Has been skipped
CI / Run end-to-end tests (postgres) (push) Failing after 19s
CI / Run end-to-end tests (sqlite) (push) Failing after 2s
CI / Run Playwright end-to-end tests (cockroach) (push) Failing after 2s
CI / Draft newsletter (push) Has been skipped
CI / Generate release (push) Has been skipped
CI / Pending approval Slack notification (push) Has been skipped
CI / Send newsletter (push) Has been skipped

This commit is contained in:
upstream-mirror
2026-09-15 21:19:12 +05:00
commit c60cc7ca75
8092 changed files with 394160 additions and 0 deletions

1707
test/e2e/proxy/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,24 @@
{
"name": "proxy",
"version": "1.0.0",
"private": true,
"type": "module",
"main": "index.js",
"overrides": {
"tough-cookie": "6.0.1",
"path-to-regexp": "0.1.13",
"qs": "6.15.2",
"form-data": "2.5.6",
"body-parser": "1.20.6",
"brace-expansion": "1.1.16"
},
"scripts": {
"start": "nodemon ./proxy.js"
},
"dependencies": {
"express": "4.21.2",
"nodemon": "3.1.10",
"request": "2.88.2",
"url-join": "5.0.0"
}
}

54
test/e2e/proxy/proxy.js Normal file
View File

@@ -0,0 +1,54 @@
// Copyright © 2023 Ory Corp
// SPDX-License-Identifier: Apache-2.0
import request from "request"
import { resolve } from "path"
import urljoin from "url-join"
import express from "express"
import fs from "fs"
const app = express()
const proxy =
(base, prefix = null) =>
(req, res, next) => {
let url = urljoin(base, req.url)
// we need to tell Krato we are behind a reverse proxy
req.headers["x-forwarded-host"] = req.get("host")
if (prefix) {
url = urljoin(base, prefix, req.url)
}
req
.pipe(request(url, { followRedirect: false }).on("error", next))
.pipe(res)
}
app.use(
"/self-service/",
proxy(process.env.KRATOS_PUBLIC_URL, "/self-service/"),
)
app.use("/schemas/", proxy(process.env.KRATOS_PUBLIC_URL, "/schemas/"))
app.use("/.well-known/", proxy(process.env.KRATOS_PUBLIC_URL, "/.well-known/"))
app.use("/", (req, res, next) => {
const pc = JSON.parse(fs.readFileSync(resolve("../proxy.json")).toString())
switch (pc) {
case "react":
proxy(process.env.KRATOS_UI_REACT_URL)(req, res, next)
return
case "react-native":
proxy(process.env.KRATOS_UI_REACT_NATIVE_URL)(req, res, next)
return
}
proxy(process.env.KRATOS_UI_URL)(req, res, next)
})
const port = parseInt(process.env.PORT) || 4455
let listener = () => {
console.log(`Listening on http://0.0.0.0:${port}`)
}
app.listen(port, "0.0.0.0", listener)