diff --git a/config.yaml b/config.yaml index ec7ca89..6d1ea0f 100644 --- a/config.yaml +++ b/config.yaml @@ -1,5 +1,5 @@ settings: - title: 'Status Page' + title: 'Status Page powered by Workers and D1' url: 'https://status-page.eidam.dev' # used for Slack messages logo: logo-192x192.png # image in ./public/ folder daysInHistogram: 90 # number of days you want to display in histogram @@ -13,27 +13,3 @@ settings: dayInHistogramNoData: 'No data' dayInHistogramOperational: 'All good' dayInHistogramNotOperational: ' incident(s)' # xx incident(s) recorded - -monitors: - - id: workers-cloudflare-com # unique identifier - name: workers.cloudflare.com - description: 'You write code. They handle the rest.' # default=empty - url: 'https://workers.cloudflare.com/' # URL to fetch - method: GET # default=GET - expectStatus: 200 # operational status, default=200 - followRedirect: false # should fetch follow redirects, default=false - linkable: false # allows the title to be a link, default=true - - - id: www-cloudflare-com - name: www.cloudflare.com - description: 'Built for anything connected to the Internet.' - url: 'https://www.cloudflare.com' - method: GET - expectStatus: 200 - linkable: true # allows the title to be a link, default=true - - - id: blog-cloudflare-com - name: The Cloudflare Blog - url: 'https://blog.cloudflare.com/' - method: GET - expectStatus: 200 diff --git a/flareact.config.js b/flareact.config.js index 8bd3f87..de34958 100644 --- a/flareact.config.js +++ b/flareact.config.js @@ -5,7 +5,7 @@ module.exports = { type: 'json', use: 'yaml-loader', }) - + return config }, } diff --git a/package.json b/package.json index cf51599..22e6bf1 100644 --- a/package.json +++ b/package.json @@ -9,22 +9,26 @@ "dev": "flareact dev", "build": "yarn css && flareact build", "deploy": "yarn build && flareact publish", - "kv-gc": "node ./src/cli/gcMonitors.js", "format": "prettier --write '**/*.{js,css,json,md}'", - "css": "postcss public/tailwind.css -o public/style.css" + "css": "postcss public/tailwind.css -o public/style.css", + "postinstall": "patch-package" }, "dependencies": { - "flareact": "^0.10.0", + "@cloudflare/d1": "^1.4.1", + "flareact": "^1.5.0", "laco": "^1.2.1", "laco-react": "^1.1.0", "react": "^17.0.1", - "react-dom": "^17.0.1" + "react-dom": "^17.0.1", + "wrangler": "^0.0.0-d35c69f" }, "devDependencies": { "autoprefixer": "^10.0.2", "node-fetch": "^2.6.1", + "patch-package": "^6.4.7", "postcss": "^8.2.10", "postcss-cli": "^8.3.0", + "postinstall-postinstall": "^2.1.0", "prettier": "^2.2.0", "tailwindcss": "^2.0.1", "yaml-loader": "^0.6.0" diff --git a/pages/api/triggerCron.js b/pages/api/triggerCron.js index 961ab9f..d1b445e 100644 --- a/pages/api/triggerCron.js +++ b/pages/api/triggerCron.js @@ -2,5 +2,5 @@ import { processCronTrigger } from '../../src/functions/cronTrigger' export default async (event) => { // used only for local debugging - //return processCronTrigger(event) + return processCronTrigger(event) } diff --git a/pages/index.js b/pages/index.js index 4f71211..a28d007 100644 --- a/pages/index.js +++ b/pages/index.js @@ -2,45 +2,29 @@ import { Store } from 'laco' import { useStore } from 'laco-react' import Head from 'flareact/head' -import { getKVMonitors, useKeyPress } from '../src/functions/helpers' +import { loadData, useKeyPress } from '../src/functions/helpers' import config from '../config.yaml' import MonitorCard from '../src/components/monitorCard' -import MonitorFilter from '../src/components/monitorFilter' import MonitorStatusHeader from '../src/components/monitorStatusHeader' import ThemeSwitcher from '../src/components/themeSwitcher' -const MonitorStore = new Store({ - monitors: config.monitors, - visible: config.monitors, - activeFilter: false, -}) - -const filterByTerm = (term) => - MonitorStore.set((state) => ({ - visible: state.monitors.filter((monitor) => - monitor.name.toLowerCase().includes(term), - ), - })) - export async function getEdgeProps() { - // get KV data - const kvMonitors = await getKVMonitors() + const { monitors, checks } = await loadData() + + console.log(monitors, checks) return { props: { config, - kvMonitors: kvMonitors ? kvMonitors.monitors : {}, - kvMonitorsLastUpdate: kvMonitors ? kvMonitors.lastUpdate : {}, + monitors: monitors || {}, + checks, }, // Revalidate these props once every x seconds revalidate: 5, } } -export default function Index({ config, kvMonitors, kvMonitorsLastUpdate }) { - const state = useStore(MonitorStore) - const slash = useKeyPress('/') - +export default function Index({ config, monitors, checks }) { return (