Examples demo: Oracle notes app - #111

Merged
ryanrasti merged 1 commit into
mainfrom
demo/oracle-notes
Aug 19, 2026
Merged

Examples demo: Oracle notes app#111
ryanrasti merged 1 commit into
mainfrom
demo/oracle-notes

Conversation

@ryanrasti

Copy link
Copy Markdown
Owner

No description provided.

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new end-to-end “Oracle Notes” example app that demonstrates Typegres’ capability-based API model backed by Oracle DB, including a React UI, an HTTP batch RPC transport, server/migration logic, tests, and deployment assets.

Changes:

  • Extend the typegres/capnweb shim re-exports to support HTTP batch RPC client/server helpers used by the example.
  • Add the Oracle Notes example: React client, Node HTTP server, Typegres schema/API, migrations, and Vitest coverage.
  • Add Fly.io + Docker deployment scaffolding for running the demo with a separate Oracle app.

Reviewed changes

Copilot reviewed 28 out of 29 changed files in this pull request and generated 3 comments.

Show a summary per file
FileDescription
src/capnweb/shim.tsRe-exports additional capnweb helpers needed by the example’s client/server RPC wiring.
examples/oracle-notes/vitest.config.tsAdds Vitest config for the example using SWC for TS transforms.
examples/oracle-notes/vite.config.tsAdds Vite config for the React client + dev proxy to the API server.
examples/oracle-notes/tsdown.config.tsAdds Node build config for the example’s server bundle.
examples/oracle-notes/tsconfig.jsonAdds TS config for the example (client, server, tests).
examples/oracle-notes/tests/oracle-live.test.tsAdds live Oracle integration tests (gated by ORACLE_URL).
examples/oracle-notes/tests/config.test.tsAdds unit tests for Oracle URL parsing/config.
examples/oracle-notes/tests/auth.test.tsAdds unit tests for password hashing/verification helpers.
examples/oracle-notes/src/styles.cssAdds client styling for the demo UI.
examples/oracle-notes/src/rpc.tsAdds client RPC helpers for login + listing notes via HTTP batch RPC.
examples/oracle-notes/src/main.tsxAdds React entrypoint wiring.
examples/oracle-notes/src/App.tsxImplements the React notes UI (login, list, edit, delete).
examples/oracle-notes/server/migrate.tsAdds Oracle schema/migration statements for users/notes.
examples/oracle-notes/server/index.tsAdds Node HTTP server: healthz, RPC handler, and static serving.
examples/oracle-notes/server/dev.tsAdds dev bootstrap defaults and server startup for tsx watch.
examples/oracle-notes/server/config.tsAdds environment parsing for Oracle pool attrs, port, and static root.
examples/oracle-notes/server/auth.tsAdds PBKDF2-based password hashing/verification for the demo.
examples/oracle-notes/server/api.tsAdds Typegres tables + exposed capabilities implementing the app API.
examples/oracle-notes/README.mdDocuments the example’s model, dev workflow, deployment, and security scope.
examples/oracle-notes/package.jsonAdds example-specific scripts and deps (React, oracledb, vitest, etc.).
examples/oracle-notes/package-lock.jsonLocks example dependencies.
examples/oracle-notes/index.htmlAdds Vite HTML entry for the example client.
examples/oracle-notes/fly.oracle.tomlFly config for the Oracle VM/app.
examples/oracle-notes/fly.app.tomlFly config for the Node app VM/app.
examples/oracle-notes/Dockerfile.dockerignoreDocker ignore rules for building the example image efficiently.
examples/oracle-notes/DockerfileMulti-stage Docker build for the combined client/server artifact.
examples/oracle-notes/deploy.shAdds a deployment script orchestrating both Fly apps + secrets + cert.
examples/oracle-notes/.gitignoreIgnores local env/build artifacts for the example.
examples/oracle-notes/.env.exampleProvides a template for deployment environment variables.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +45 to +46
const requested = normalize(decodeURIComponent(url.pathname)).replace(/^(\.\.[/\\])+/, "");
let file = join(staticRoot, requested === "/" ? "index.html" : requested);
"cache-control": file.endsWith("index.html") ? "no-cache" : "public, max-age=31536000, immutable",
"content-type": mimeTypes[extname(file)] ?? "application/octet-stream",
});
createReadStream(file).pipe(response);
Comment on lines +19 to +20
// Oracle represents an empty VARCHAR2 as NULL, so note bodies are nullable.
// This also upgrades databases created by the earlier NOT NULL definition.
@ryanrasti
ryanrasti merged commit b8fbf7d into mainAug 19, 2026
3 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@ryanrasti
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Examples demo: Oracle notes app - #111

Merged
ryanrasti merged 1 commit into
mainfrom
demo/oracle-notes
Aug 19, 2026
Merged

Examples demo: Oracle notes app#111
ryanrasti merged 1 commit into
mainfrom
demo/oracle-notes

Conversation

@ryanrasti

Copy link
Copy Markdown
Owner

No description provided.

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new end-to-end “Oracle Notes” example app that demonstrates Typegres’ capability-based API model backed by Oracle DB, including a React UI, an HTTP batch RPC transport, server/migration logic, tests, and deployment assets.

Changes:

  • Extend the typegres/capnweb shim re-exports to support HTTP batch RPC client/server helpers used by the example.
  • Add the Oracle Notes example: React client, Node HTTP server, Typegres schema/API, migrations, and Vitest coverage.
  • Add Fly.io + Docker deployment scaffolding for running the demo with a separate Oracle app.

Reviewed changes

Copilot reviewed 28 out of 29 changed files in this pull request and generated 3 comments.

Show a summary per file
FileDescription
src/capnweb/shim.tsRe-exports additional capnweb helpers needed by the example’s client/server RPC wiring.
examples/oracle-notes/vitest.config.tsAdds Vitest config for the example using SWC for TS transforms.
examples/oracle-notes/vite.config.tsAdds Vite config for the React client + dev proxy to the API server.
examples/oracle-notes/tsdown.config.tsAdds Node build config for the example’s server bundle.
examples/oracle-notes/tsconfig.jsonAdds TS config for the example (client, server, tests).
examples/oracle-notes/tests/oracle-live.test.tsAdds live Oracle integration tests (gated by ORACLE_URL).
examples/oracle-notes/tests/config.test.tsAdds unit tests for Oracle URL parsing/config.
examples/oracle-notes/tests/auth.test.tsAdds unit tests for password hashing/verification helpers.
examples/oracle-notes/src/styles.cssAdds client styling for the demo UI.
examples/oracle-notes/src/rpc.tsAdds client RPC helpers for login + listing notes via HTTP batch RPC.
examples/oracle-notes/src/main.tsxAdds React entrypoint wiring.
examples/oracle-notes/src/App.tsxImplements the React notes UI (login, list, edit, delete).
examples/oracle-notes/server/migrate.tsAdds Oracle schema/migration statements for users/notes.
examples/oracle-notes/server/index.tsAdds Node HTTP server: healthz, RPC handler, and static serving.
examples/oracle-notes/server/dev.tsAdds dev bootstrap defaults and server startup for tsx watch.
examples/oracle-notes/server/config.tsAdds environment parsing for Oracle pool attrs, port, and static root.
examples/oracle-notes/server/auth.tsAdds PBKDF2-based password hashing/verification for the demo.
examples/oracle-notes/server/api.tsAdds Typegres tables + exposed capabilities implementing the app API.
examples/oracle-notes/README.mdDocuments the example’s model, dev workflow, deployment, and security scope.
examples/oracle-notes/package.jsonAdds example-specific scripts and deps (React, oracledb, vitest, etc.).
examples/oracle-notes/package-lock.jsonLocks example dependencies.
examples/oracle-notes/index.htmlAdds Vite HTML entry for the example client.
examples/oracle-notes/fly.oracle.tomlFly config for the Oracle VM/app.
examples/oracle-notes/fly.app.tomlFly config for the Node app VM/app.
examples/oracle-notes/Dockerfile.dockerignoreDocker ignore rules for building the example image efficiently.
examples/oracle-notes/DockerfileMulti-stage Docker build for the combined client/server artifact.
examples/oracle-notes/deploy.shAdds a deployment script orchestrating both Fly apps + secrets + cert.
examples/oracle-notes/.gitignoreIgnores local env/build artifacts for the example.
examples/oracle-notes/.env.exampleProvides a template for deployment environment variables.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +45 to +46
const requested = normalize(decodeURIComponent(url.pathname)).replace(/^(\.\.[/\\])+/, "");
let file = join(staticRoot, requested === "/" ? "index.html" : requested);
"cache-control": file.endsWith("index.html") ? "no-cache" : "public, max-age=31536000, immutable",
"content-type": mimeTypes[extname(file)] ?? "application/octet-stream",
});
createReadStream(file).pipe(response);
Comment on lines +19 to +20
// Oracle represents an empty VARCHAR2 as NULL, so note bodies are nullable.
// This also upgrades databases created by the earlier NOT NULL definition.
@ryanrasti
ryanrasti merged commit b8fbf7d into mainAug 19, 2026
3 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@ryanrasti
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Examples demo: Oracle notes app - #111

Merged
ryanrasti merged 1 commit into
mainfrom
demo/oracle-notes
Aug 19, 2026
Merged

Examples demo: Oracle notes app#111
ryanrasti merged 1 commit into
mainfrom
demo/oracle-notes

Conversation

@ryanrasti

Copy link
Copy Markdown
Owner

No description provided.

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new end-to-end “Oracle Notes” example app that demonstrates Typegres’ capability-based API model backed by Oracle DB, including a React UI, an HTTP batch RPC transport, server/migration logic, tests, and deployment assets.

Changes:

  • Extend the typegres/capnweb shim re-exports to support HTTP batch RPC client/server helpers used by the example.
  • Add the Oracle Notes example: React client, Node HTTP server, Typegres schema/API, migrations, and Vitest coverage.
  • Add Fly.io + Docker deployment scaffolding for running the demo with a separate Oracle app.

Reviewed changes

Copilot reviewed 28 out of 29 changed files in this pull request and generated 3 comments.

Show a summary per file
FileDescription
src/capnweb/shim.tsRe-exports additional capnweb helpers needed by the example’s client/server RPC wiring.
examples/oracle-notes/vitest.config.tsAdds Vitest config for the example using SWC for TS transforms.
examples/oracle-notes/vite.config.tsAdds Vite config for the React client + dev proxy to the API server.
examples/oracle-notes/tsdown.config.tsAdds Node build config for the example’s server bundle.
examples/oracle-notes/tsconfig.jsonAdds TS config for the example (client, server, tests).
examples/oracle-notes/tests/oracle-live.test.tsAdds live Oracle integration tests (gated by ORACLE_URL).
examples/oracle-notes/tests/config.test.tsAdds unit tests for Oracle URL parsing/config.
examples/oracle-notes/tests/auth.test.tsAdds unit tests for password hashing/verification helpers.
examples/oracle-notes/src/styles.cssAdds client styling for the demo UI.
examples/oracle-notes/src/rpc.tsAdds client RPC helpers for login + listing notes via HTTP batch RPC.
examples/oracle-notes/src/main.tsxAdds React entrypoint wiring.
examples/oracle-notes/src/App.tsxImplements the React notes UI (login, list, edit, delete).
examples/oracle-notes/server/migrate.tsAdds Oracle schema/migration statements for users/notes.
examples/oracle-notes/server/index.tsAdds Node HTTP server: healthz, RPC handler, and static serving.
examples/oracle-notes/server/dev.tsAdds dev bootstrap defaults and server startup for tsx watch.
examples/oracle-notes/server/config.tsAdds environment parsing for Oracle pool attrs, port, and static root.
examples/oracle-notes/server/auth.tsAdds PBKDF2-based password hashing/verification for the demo.
examples/oracle-notes/server/api.tsAdds Typegres tables + exposed capabilities implementing the app API.
examples/oracle-notes/README.mdDocuments the example’s model, dev workflow, deployment, and security scope.
examples/oracle-notes/package.jsonAdds example-specific scripts and deps (React, oracledb, vitest, etc.).
examples/oracle-notes/package-lock.jsonLocks example dependencies.
examples/oracle-notes/index.htmlAdds Vite HTML entry for the example client.
examples/oracle-notes/fly.oracle.tomlFly config for the Oracle VM/app.
examples/oracle-notes/fly.app.tomlFly config for the Node app VM/app.
examples/oracle-notes/Dockerfile.dockerignoreDocker ignore rules for building the example image efficiently.
examples/oracle-notes/DockerfileMulti-stage Docker build for the combined client/server artifact.
examples/oracle-notes/deploy.shAdds a deployment script orchestrating both Fly apps + secrets + cert.
examples/oracle-notes/.gitignoreIgnores local env/build artifacts for the example.
examples/oracle-notes/.env.exampleProvides a template for deployment environment variables.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +45 to +46
const requested = normalize(decodeURIComponent(url.pathname)).replace(/^(\.\.[/\\])+/, "");
let file = join(staticRoot, requested === "/" ? "index.html" : requested);
"cache-control": file.endsWith("index.html") ? "no-cache" : "public, max-age=31536000, immutable",
"content-type": mimeTypes[extname(file)] ?? "application/octet-stream",
});
createReadStream(file).pipe(response);
Comment on lines +19 to +20
// Oracle represents an empty VARCHAR2 as NULL, so note bodies are nullable.
// This also upgrades databases created by the earlier NOT NULL definition.
@ryanrasti
ryanrasti merged commit b8fbf7d into mainAug 19, 2026
3 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@ryanrasti
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Examples demo: Oracle notes app - #111

Merged
ryanrasti merged 1 commit into
mainfrom
demo/oracle-notes
Aug 19, 2026
Merged

Examples demo: Oracle notes app#111
ryanrasti merged 1 commit into
mainfrom
demo/oracle-notes

Conversation

@ryanrasti

Copy link
Copy Markdown
Owner

No description provided.

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new end-to-end “Oracle Notes” example app that demonstrates Typegres’ capability-based API model backed by Oracle DB, including a React UI, an HTTP batch RPC transport, server/migration logic, tests, and deployment assets.

Changes:

  • Extend the typegres/capnweb shim re-exports to support HTTP batch RPC client/server helpers used by the example.
  • Add the Oracle Notes example: React client, Node HTTP server, Typegres schema/API, migrations, and Vitest coverage.
  • Add Fly.io + Docker deployment scaffolding for running the demo with a separate Oracle app.

Reviewed changes

Copilot reviewed 28 out of 29 changed files in this pull request and generated 3 comments.

Show a summary per file
FileDescription
src/capnweb/shim.tsRe-exports additional capnweb helpers needed by the example’s client/server RPC wiring.
examples/oracle-notes/vitest.config.tsAdds Vitest config for the example using SWC for TS transforms.
examples/oracle-notes/vite.config.tsAdds Vite config for the React client + dev proxy to the API server.
examples/oracle-notes/tsdown.config.tsAdds Node build config for the example’s server bundle.
examples/oracle-notes/tsconfig.jsonAdds TS config for the example (client, server, tests).
examples/oracle-notes/tests/oracle-live.test.tsAdds live Oracle integration tests (gated by ORACLE_URL).
examples/oracle-notes/tests/config.test.tsAdds unit tests for Oracle URL parsing/config.
examples/oracle-notes/tests/auth.test.tsAdds unit tests for password hashing/verification helpers.
examples/oracle-notes/src/styles.cssAdds client styling for the demo UI.
examples/oracle-notes/src/rpc.tsAdds client RPC helpers for login + listing notes via HTTP batch RPC.
examples/oracle-notes/src/main.tsxAdds React entrypoint wiring.
examples/oracle-notes/src/App.tsxImplements the React notes UI (login, list, edit, delete).
examples/oracle-notes/server/migrate.tsAdds Oracle schema/migration statements for users/notes.
examples/oracle-notes/server/index.tsAdds Node HTTP server: healthz, RPC handler, and static serving.
examples/oracle-notes/server/dev.tsAdds dev bootstrap defaults and server startup for tsx watch.
examples/oracle-notes/server/config.tsAdds environment parsing for Oracle pool attrs, port, and static root.
examples/oracle-notes/server/auth.tsAdds PBKDF2-based password hashing/verification for the demo.
examples/oracle-notes/server/api.tsAdds Typegres tables + exposed capabilities implementing the app API.
examples/oracle-notes/README.mdDocuments the example’s model, dev workflow, deployment, and security scope.
examples/oracle-notes/package.jsonAdds example-specific scripts and deps (React, oracledb, vitest, etc.).
examples/oracle-notes/package-lock.jsonLocks example dependencies.
examples/oracle-notes/index.htmlAdds Vite HTML entry for the example client.
examples/oracle-notes/fly.oracle.tomlFly config for the Oracle VM/app.
examples/oracle-notes/fly.app.tomlFly config for the Node app VM/app.
examples/oracle-notes/Dockerfile.dockerignoreDocker ignore rules for building the example image efficiently.
examples/oracle-notes/DockerfileMulti-stage Docker build for the combined client/server artifact.
examples/oracle-notes/deploy.shAdds a deployment script orchestrating both Fly apps + secrets + cert.
examples/oracle-notes/.gitignoreIgnores local env/build artifacts for the example.
examples/oracle-notes/.env.exampleProvides a template for deployment environment variables.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +45 to +46
const requested = normalize(decodeURIComponent(url.pathname)).replace(/^(\.\.[/\\])+/, "");
let file = join(staticRoot, requested === "/" ? "index.html" : requested);
"cache-control": file.endsWith("index.html") ? "no-cache" : "public, max-age=31536000, immutable",
"content-type": mimeTypes[extname(file)] ?? "application/octet-stream",
});
createReadStream(file).pipe(response);
Comment on lines +19 to +20
// Oracle represents an empty VARCHAR2 as NULL, so note bodies are nullable.
// This also upgrades databases created by the earlier NOT NULL definition.
@ryanrasti
ryanrasti merged commit b8fbf7d into mainAug 19, 2026
3 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@ryanrasti
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Examples demo: Oracle notes app - #111

Merged
ryanrasti merged 1 commit into
mainfrom
demo/oracle-notes
Aug 19, 2026
Merged

Examples demo: Oracle notes app#111
ryanrasti merged 1 commit into
mainfrom
demo/oracle-notes

Conversation

@ryanrasti

Copy link
Copy Markdown
Owner

No description provided.

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new end-to-end “Oracle Notes” example app that demonstrates Typegres’ capability-based API model backed by Oracle DB, including a React UI, an HTTP batch RPC transport, server/migration logic, tests, and deployment assets.

Changes:

  • Extend the typegres/capnweb shim re-exports to support HTTP batch RPC client/server helpers used by the example.
  • Add the Oracle Notes example: React client, Node HTTP server, Typegres schema/API, migrations, and Vitest coverage.
  • Add Fly.io + Docker deployment scaffolding for running the demo with a separate Oracle app.

Reviewed changes

Copilot reviewed 28 out of 29 changed files in this pull request and generated 3 comments.

Show a summary per file
FileDescription
src/capnweb/shim.tsRe-exports additional capnweb helpers needed by the example’s client/server RPC wiring.
examples/oracle-notes/vitest.config.tsAdds Vitest config for the example using SWC for TS transforms.
examples/oracle-notes/vite.config.tsAdds Vite config for the React client + dev proxy to the API server.
examples/oracle-notes/tsdown.config.tsAdds Node build config for the example’s server bundle.
examples/oracle-notes/tsconfig.jsonAdds TS config for the example (client, server, tests).
examples/oracle-notes/tests/oracle-live.test.tsAdds live Oracle integration tests (gated by ORACLE_URL).
examples/oracle-notes/tests/config.test.tsAdds unit tests for Oracle URL parsing/config.
examples/oracle-notes/tests/auth.test.tsAdds unit tests for password hashing/verification helpers.
examples/oracle-notes/src/styles.cssAdds client styling for the demo UI.
examples/oracle-notes/src/rpc.tsAdds client RPC helpers for login + listing notes via HTTP batch RPC.
examples/oracle-notes/src/main.tsxAdds React entrypoint wiring.
examples/oracle-notes/src/App.tsxImplements the React notes UI (login, list, edit, delete).
examples/oracle-notes/server/migrate.tsAdds Oracle schema/migration statements for users/notes.
examples/oracle-notes/server/index.tsAdds Node HTTP server: healthz, RPC handler, and static serving.
examples/oracle-notes/server/dev.tsAdds dev bootstrap defaults and server startup for tsx watch.
examples/oracle-notes/server/config.tsAdds environment parsing for Oracle pool attrs, port, and static root.
examples/oracle-notes/server/auth.tsAdds PBKDF2-based password hashing/verification for the demo.
examples/oracle-notes/server/api.tsAdds Typegres tables + exposed capabilities implementing the app API.
examples/oracle-notes/README.mdDocuments the example’s model, dev workflow, deployment, and security scope.
examples/oracle-notes/package.jsonAdds example-specific scripts and deps (React, oracledb, vitest, etc.).
examples/oracle-notes/package-lock.jsonLocks example dependencies.
examples/oracle-notes/index.htmlAdds Vite HTML entry for the example client.
examples/oracle-notes/fly.oracle.tomlFly config for the Oracle VM/app.
examples/oracle-notes/fly.app.tomlFly config for the Node app VM/app.
examples/oracle-notes/Dockerfile.dockerignoreDocker ignore rules for building the example image efficiently.
examples/oracle-notes/DockerfileMulti-stage Docker build for the combined client/server artifact.
examples/oracle-notes/deploy.shAdds a deployment script orchestrating both Fly apps + secrets + cert.
examples/oracle-notes/.gitignoreIgnores local env/build artifacts for the example.
examples/oracle-notes/.env.exampleProvides a template for deployment environment variables.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +45 to +46
const requested = normalize(decodeURIComponent(url.pathname)).replace(/^(\.\.[/\\])+/, "");
let file = join(staticRoot, requested === "/" ? "index.html" : requested);
"cache-control": file.endsWith("index.html") ? "no-cache" : "public, max-age=31536000, immutable",
"content-type": mimeTypes[extname(file)] ?? "application/octet-stream",
});
createReadStream(file).pipe(response);
Comment on lines +19 to +20
// Oracle represents an empty VARCHAR2 as NULL, so note bodies are nullable.
// This also upgrades databases created by the earlier NOT NULL definition.
@ryanrasti
ryanrasti merged commit b8fbf7d into mainAug 19, 2026
3 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@ryanrasti
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Examples demo: Oracle notes app - #111

Merged
ryanrasti merged 1 commit into
mainfrom
demo/oracle-notes
Aug 19, 2026
Merged

Examples demo: Oracle notes app#111
ryanrasti merged 1 commit into
mainfrom
demo/oracle-notes

Conversation

@ryanrasti

Copy link
Copy Markdown
Owner

No description provided.

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new end-to-end “Oracle Notes” example app that demonstrates Typegres’ capability-based API model backed by Oracle DB, including a React UI, an HTTP batch RPC transport, server/migration logic, tests, and deployment assets.

Changes:

  • Extend the typegres/capnweb shim re-exports to support HTTP batch RPC client/server helpers used by the example.
  • Add the Oracle Notes example: React client, Node HTTP server, Typegres schema/API, migrations, and Vitest coverage.
  • Add Fly.io + Docker deployment scaffolding for running the demo with a separate Oracle app.

Reviewed changes

Copilot reviewed 28 out of 29 changed files in this pull request and generated 3 comments.

Show a summary per file
FileDescription
src/capnweb/shim.tsRe-exports additional capnweb helpers needed by the example’s client/server RPC wiring.
examples/oracle-notes/vitest.config.tsAdds Vitest config for the example using SWC for TS transforms.
examples/oracle-notes/vite.config.tsAdds Vite config for the React client + dev proxy to the API server.
examples/oracle-notes/tsdown.config.tsAdds Node build config for the example’s server bundle.
examples/oracle-notes/tsconfig.jsonAdds TS config for the example (client, server, tests).
examples/oracle-notes/tests/oracle-live.test.tsAdds live Oracle integration tests (gated by ORACLE_URL).
examples/oracle-notes/tests/config.test.tsAdds unit tests for Oracle URL parsing/config.
examples/oracle-notes/tests/auth.test.tsAdds unit tests for password hashing/verification helpers.
examples/oracle-notes/src/styles.cssAdds client styling for the demo UI.
examples/oracle-notes/src/rpc.tsAdds client RPC helpers for login + listing notes via HTTP batch RPC.
examples/oracle-notes/src/main.tsxAdds React entrypoint wiring.
examples/oracle-notes/src/App.tsxImplements the React notes UI (login, list, edit, delete).
examples/oracle-notes/server/migrate.tsAdds Oracle schema/migration statements for users/notes.
examples/oracle-notes/server/index.tsAdds Node HTTP server: healthz, RPC handler, and static serving.
examples/oracle-notes/server/dev.tsAdds dev bootstrap defaults and server startup for tsx watch.
examples/oracle-notes/server/config.tsAdds environment parsing for Oracle pool attrs, port, and static root.
examples/oracle-notes/server/auth.tsAdds PBKDF2-based password hashing/verification for the demo.
examples/oracle-notes/server/api.tsAdds Typegres tables + exposed capabilities implementing the app API.
examples/oracle-notes/README.mdDocuments the example’s model, dev workflow, deployment, and security scope.
examples/oracle-notes/package.jsonAdds example-specific scripts and deps (React, oracledb, vitest, etc.).
examples/oracle-notes/package-lock.jsonLocks example dependencies.
examples/oracle-notes/index.htmlAdds Vite HTML entry for the example client.
examples/oracle-notes/fly.oracle.tomlFly config for the Oracle VM/app.
examples/oracle-notes/fly.app.tomlFly config for the Node app VM/app.
examples/oracle-notes/Dockerfile.dockerignoreDocker ignore rules for building the example image efficiently.
examples/oracle-notes/DockerfileMulti-stage Docker build for the combined client/server artifact.
examples/oracle-notes/deploy.shAdds a deployment script orchestrating both Fly apps + secrets + cert.
examples/oracle-notes/.gitignoreIgnores local env/build artifacts for the example.
examples/oracle-notes/.env.exampleProvides a template for deployment environment variables.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +45 to +46
const requested = normalize(decodeURIComponent(url.pathname)).replace(/^(\.\.[/\\])+/, "");
let file = join(staticRoot, requested === "/" ? "index.html" : requested);
"cache-control": file.endsWith("index.html") ? "no-cache" : "public, max-age=31536000, immutable",
"content-type": mimeTypes[extname(file)] ?? "application/octet-stream",
});
createReadStream(file).pipe(response);
Comment on lines +19 to +20
// Oracle represents an empty VARCHAR2 as NULL, so note bodies are nullable.
// This also upgrades databases created by the earlier NOT NULL definition.
@ryanrasti
ryanrasti merged commit b8fbf7d into mainAug 19, 2026
3 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@ryanrasti
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Examples demo: Oracle notes app - #111

Merged
ryanrasti merged 1 commit into
mainfrom
demo/oracle-notes
Aug 19, 2026
Merged

Examples demo: Oracle notes app#111
ryanrasti merged 1 commit into
mainfrom
demo/oracle-notes

Conversation

@ryanrasti

Copy link
Copy Markdown
Owner

No description provided.

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new end-to-end “Oracle Notes” example app that demonstrates Typegres’ capability-based API model backed by Oracle DB, including a React UI, an HTTP batch RPC transport, server/migration logic, tests, and deployment assets.

Changes:

  • Extend the typegres/capnweb shim re-exports to support HTTP batch RPC client/server helpers used by the example.
  • Add the Oracle Notes example: React client, Node HTTP server, Typegres schema/API, migrations, and Vitest coverage.
  • Add Fly.io + Docker deployment scaffolding for running the demo with a separate Oracle app.

Reviewed changes

Copilot reviewed 28 out of 29 changed files in this pull request and generated 3 comments.

Show a summary per file
FileDescription
src/capnweb/shim.tsRe-exports additional capnweb helpers needed by the example’s client/server RPC wiring.
examples/oracle-notes/vitest.config.tsAdds Vitest config for the example using SWC for TS transforms.
examples/oracle-notes/vite.config.tsAdds Vite config for the React client + dev proxy to the API server.
examples/oracle-notes/tsdown.config.tsAdds Node build config for the example’s server bundle.
examples/oracle-notes/tsconfig.jsonAdds TS config for the example (client, server, tests).
examples/oracle-notes/tests/oracle-live.test.tsAdds live Oracle integration tests (gated by ORACLE_URL).
examples/oracle-notes/tests/config.test.tsAdds unit tests for Oracle URL parsing/config.
examples/oracle-notes/tests/auth.test.tsAdds unit tests for password hashing/verification helpers.
examples/oracle-notes/src/styles.cssAdds client styling for the demo UI.
examples/oracle-notes/src/rpc.tsAdds client RPC helpers for login + listing notes via HTTP batch RPC.
examples/oracle-notes/src/main.tsxAdds React entrypoint wiring.
examples/oracle-notes/src/App.tsxImplements the React notes UI (login, list, edit, delete).
examples/oracle-notes/server/migrate.tsAdds Oracle schema/migration statements for users/notes.
examples/oracle-notes/server/index.tsAdds Node HTTP server: healthz, RPC handler, and static serving.
examples/oracle-notes/server/dev.tsAdds dev bootstrap defaults and server startup for tsx watch.
examples/oracle-notes/server/config.tsAdds environment parsing for Oracle pool attrs, port, and static root.
examples/oracle-notes/server/auth.tsAdds PBKDF2-based password hashing/verification for the demo.
examples/oracle-notes/server/api.tsAdds Typegres tables + exposed capabilities implementing the app API.
examples/oracle-notes/README.mdDocuments the example’s model, dev workflow, deployment, and security scope.
examples/oracle-notes/package.jsonAdds example-specific scripts and deps (React, oracledb, vitest, etc.).
examples/oracle-notes/package-lock.jsonLocks example dependencies.
examples/oracle-notes/index.htmlAdds Vite HTML entry for the example client.
examples/oracle-notes/fly.oracle.tomlFly config for the Oracle VM/app.
examples/oracle-notes/fly.app.tomlFly config for the Node app VM/app.
examples/oracle-notes/Dockerfile.dockerignoreDocker ignore rules for building the example image efficiently.
examples/oracle-notes/DockerfileMulti-stage Docker build for the combined client/server artifact.
examples/oracle-notes/deploy.shAdds a deployment script orchestrating both Fly apps + secrets + cert.
examples/oracle-notes/.gitignoreIgnores local env/build artifacts for the example.
examples/oracle-notes/.env.exampleProvides a template for deployment environment variables.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +45 to +46
const requested = normalize(decodeURIComponent(url.pathname)).replace(/^(\.\.[/\\])+/, "");
let file = join(staticRoot, requested === "/" ? "index.html" : requested);
"cache-control": file.endsWith("index.html") ? "no-cache" : "public, max-age=31536000, immutable",
"content-type": mimeTypes[extname(file)] ?? "application/octet-stream",
});
createReadStream(file).pipe(response);
Comment on lines +19 to +20
// Oracle represents an empty VARCHAR2 as NULL, so note bodies are nullable.
// This also upgrades databases created by the earlier NOT NULL definition.
@ryanrasti
ryanrasti merged commit b8fbf7d into mainAug 19, 2026
3 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@ryanrasti
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Examples demo: Oracle notes app - #111

Merged
ryanrasti merged 1 commit into
mainfrom
demo/oracle-notes
Aug 19, 2026
Merged

Examples demo: Oracle notes app#111
ryanrasti merged 1 commit into
mainfrom
demo/oracle-notes

Conversation

@ryanrasti

Copy link
Copy Markdown
Owner

No description provided.

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new end-to-end “Oracle Notes” example app that demonstrates Typegres’ capability-based API model backed by Oracle DB, including a React UI, an HTTP batch RPC transport, server/migration logic, tests, and deployment assets.

Changes:

  • Extend the typegres/capnweb shim re-exports to support HTTP batch RPC client/server helpers used by the example.
  • Add the Oracle Notes example: React client, Node HTTP server, Typegres schema/API, migrations, and Vitest coverage.
  • Add Fly.io + Docker deployment scaffolding for running the demo with a separate Oracle app.

Reviewed changes

Copilot reviewed 28 out of 29 changed files in this pull request and generated 3 comments.

Show a summary per file
FileDescription
src/capnweb/shim.tsRe-exports additional capnweb helpers needed by the example’s client/server RPC wiring.
examples/oracle-notes/vitest.config.tsAdds Vitest config for the example using SWC for TS transforms.
examples/oracle-notes/vite.config.tsAdds Vite config for the React client + dev proxy to the API server.
examples/oracle-notes/tsdown.config.tsAdds Node build config for the example’s server bundle.
examples/oracle-notes/tsconfig.jsonAdds TS config for the example (client, server, tests).
examples/oracle-notes/tests/oracle-live.test.tsAdds live Oracle integration tests (gated by ORACLE_URL).
examples/oracle-notes/tests/config.test.tsAdds unit tests for Oracle URL parsing/config.
examples/oracle-notes/tests/auth.test.tsAdds unit tests for password hashing/verification helpers.
examples/oracle-notes/src/styles.cssAdds client styling for the demo UI.
examples/oracle-notes/src/rpc.tsAdds client RPC helpers for login + listing notes via HTTP batch RPC.
examples/oracle-notes/src/main.tsxAdds React entrypoint wiring.
examples/oracle-notes/src/App.tsxImplements the React notes UI (login, list, edit, delete).
examples/oracle-notes/server/migrate.tsAdds Oracle schema/migration statements for users/notes.
examples/oracle-notes/server/index.tsAdds Node HTTP server: healthz, RPC handler, and static serving.
examples/oracle-notes/server/dev.tsAdds dev bootstrap defaults and server startup for tsx watch.
examples/oracle-notes/server/config.tsAdds environment parsing for Oracle pool attrs, port, and static root.
examples/oracle-notes/server/auth.tsAdds PBKDF2-based password hashing/verification for the demo.
examples/oracle-notes/server/api.tsAdds Typegres tables + exposed capabilities implementing the app API.
examples/oracle-notes/README.mdDocuments the example’s model, dev workflow, deployment, and security scope.
examples/oracle-notes/package.jsonAdds example-specific scripts and deps (React, oracledb, vitest, etc.).
examples/oracle-notes/package-lock.jsonLocks example dependencies.
examples/oracle-notes/index.htmlAdds Vite HTML entry for the example client.
examples/oracle-notes/fly.oracle.tomlFly config for the Oracle VM/app.
examples/oracle-notes/fly.app.tomlFly config for the Node app VM/app.
examples/oracle-notes/Dockerfile.dockerignoreDocker ignore rules for building the example image efficiently.
examples/oracle-notes/DockerfileMulti-stage Docker build for the combined client/server artifact.
examples/oracle-notes/deploy.shAdds a deployment script orchestrating both Fly apps + secrets + cert.
examples/oracle-notes/.gitignoreIgnores local env/build artifacts for the example.
examples/oracle-notes/.env.exampleProvides a template for deployment environment variables.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +45 to +46
const requested = normalize(decodeURIComponent(url.pathname)).replace(/^(\.\.[/\\])+/, "");
let file = join(staticRoot, requested === "/" ? "index.html" : requested);
"cache-control": file.endsWith("index.html") ? "no-cache" : "public, max-age=31536000, immutable",
"content-type": mimeTypes[extname(file)] ?? "application/octet-stream",
});
createReadStream(file).pipe(response);
Comment on lines +19 to +20
// Oracle represents an empty VARCHAR2 as NULL, so note bodies are nullable.
// This also upgrades databases created by the earlier NOT NULL definition.
@ryanrasti
ryanrasti merged commit b8fbf7d into mainAug 19, 2026
3 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@ryanrasti