Skip to content

📝 docs: improvements - #1049

Merged
cruzdanilo merged 4 commits into
mainfrom
base-docs
Jun 12, 2026
Merged

📝 docs: improvements#1049
cruzdanilo merged 4 commits into
mainfrom
base-docs

Conversation

@nfmelendez

@nfmelendez nfmelendez commented May 27, 2026

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • Documentation

    • Added a new Resources page with integration reference data (sandbox server IPs and RSA public keys).
    • Updated organization authentication examples to use environment-driven configuration.
    • Added guides for sending invites and accepting organization invitations.
  • Chores

    • Added a patch release note: “add configuration resources”.
  • Style/Navigation

    • Updated Docs sidebar to include a Resources entry.

@coderabbitai

coderabbitai Bot commented May 27, 2026

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

Adds a Resources documentation page with Exa server IPs and Rain RSA public keys, updates SIWE authentication examples to use environment-driven API_BASE_URL and INTEGRATOR_ADMIN_PRIVATE_KEY and adds invite/accept example snippets, and wires the Resources page into the docs sidebar with a changeset.

Changes

Configuration Resources Documentation

Layer / File(s) Summary
Resources Reference Documentation
docs/src/content/docs/resources.md
New Resources page lists Exa sandbox server IPs for allow-listing across OP Sepolia and Base Sepolia, and publishes Rain RSA public keys for card details/PIN and KYC operations in Sandbox and Production environments.
SIWE Authentication Examples Update
docs/src/content/docs/organization-authentication.md
SIWE example setup switches from hardcoded optimismSepolia and mnemonic to baseSepolia with environment-driven INTEGRATOR_ADMIN_PRIVATE_KEY and API_BASE_URL; SIWE uri and domain derive from API_BASE_URL; new sections show how to send and accept integrator organization invites using authenticated SIWE flows and example error handling.
Navigation and Release Integration
docs/astro.config.ts, .changeset/cute-buttons-roll.md
Sidebar configuration adds resources entry to Docs group; changeset declares a patch bump for @exactly/docs with the note "add configuration resources".

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • exactly/exa#881: Related updates to organization-authentication.md examples and sidebar entries.

Suggested reviewers

  • cruzdanilo
  • Mateo-Soso
🚥 Pre-merge checks | ✅ 3 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title '📝 docs: improvements' is vague and generic, using the non-descriptive term 'improvements' without indicating what specific documentation changes are included. Provide a more descriptive title that highlights the main changes, such as 'docs: add Base Sepolia configuration resources and invitation flows' to clearly communicate the primary additions.
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch base-docs
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch base-docs

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@gemini-code-assist gemini-code-assist Bot 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.

Code Review

This pull request introduces a new "Resources" documentation page listing Exa server IPs and Rain RSA public keys, updates the Astro sidebar configuration, and expands the organization authentication guide with detailed guides and code snippets for sending and accepting invitations. The review feedback suggests utilizing the validated API_BASE_URL variable directly in the authentication client setup to avoid redundant environment variable access, and changing the code block language specifier for PEM public keys from bash to text to prevent incorrect syntax highlighting.

Comment thread docs/src/content/docs/organization-authentication.md
Comment thread docs/src/content/docs/resources.md Outdated
@sentry

sentry Bot commented May 27, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 74.73%. Comparing base (edc6b2f) to head (ce3b598).
⚠️ Report is 4 commits behind head on main.
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1049      +/-   ##
==========================================
+ Coverage   74.70%   74.73%   +0.03%     
==========================================
  Files         243      243              
  Lines       11448    11460      +12     
  Branches     3932     3945      +13     
==========================================
+ Hits         8552     8565      +13     
  Misses       2575     2575              
+ Partials      321      320       -1     
Flag Coverage Δ
e2e 74.73% <ø> (+0.39%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@cruzdanilo cruzdanilo changed the title Integrator docs 📝 docs: improvements Jun 1, 2026
@changeset-bot

changeset-bot Bot commented Jun 8, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: ce3b598

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@exactly/docs Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@nfmelendez
nfmelendez force-pushed the card branch 3 times, most recently from b00da9b to bd438df Compare June 11, 2026 12:37
@nfmelendez
nfmelendez force-pushed the base-docs branch 2 times, most recently from 3db699e to c817b61 Compare June 11, 2026 13:44

@coderabbitai coderabbitai Bot 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.

Actionable comments posted: 6


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 00896bb9-28aa-4ec7-ac99-9c5a076af9d4

📥 Commits

Reviewing files that changed from the base of the PR and between bd438df and c817b61.

📒 Files selected for processing (4)
  • .changeset/cute-buttons-roll.md
  • docs/astro.config.ts
  • docs/src/content/docs/organization-authentication.md
  • docs/src/content/docs/resources.md

Comment thread docs/astro.config.ts
Comment thread docs/src/content/docs/organization-authentication.md
Comment thread docs/src/content/docs/organization-authentication.md
Comment thread docs/src/content/docs/organization-authentication.md
Comment thread docs/src/content/docs/organization-authentication.md Outdated
Comment thread docs/src/content/docs/organization-authentication.md Outdated
@nfmelendez

Copy link
Copy Markdown
Contributor Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 924dfeba26

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread docs/src/content/docs/organization-authentication.md
Comment thread docs/src/content/docs/organization-authentication.md
Comment thread docs/src/content/docs/resources.md
Comment thread docs/src/content/docs/organization-authentication.md
Base automatically changed from card to main June 11, 2026 14:57

@coderabbitai coderabbitai Bot 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.

Actionable comments posted: 1

♻️ Duplicate comments (1)
docs/src/content/docs/organization-authentication.md (1)

383-383: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Missing validation for INTEGRATOR_ADMIN_PRIVATE_KEY in both invite sections.

Both the "send an Invite" (line 383) and "accept an invite" (line 462) examples use process.env.INTEGRATOR_ADMIN_PRIVATE_KEY as Hex without validation. If the environment variable is undefined, privateKeyToAccount will throw a runtime error in both flows.

🛡️ Recommended fix pattern for both sections
+const INTEGRATOR_ADMIN_PRIVATE_KEY = process.env.INTEGRATOR_ADMIN_PRIVATE_KEY as Hex | undefined;
+if (!INTEGRATOR_ADMIN_PRIVATE_KEY) throw new Error("INTEGRATOR_ADMIN_PRIVATE_KEY environment variable is required");
+
-const owner = privateKeyToAccount(process.env.INTEGRATOR_ADMIN_PRIVATE_KEY as Hex);
+const owner = privateKeyToAccount(INTEGRATOR_ADMIN_PRIVATE_KEY);

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 2192bf34-839c-4946-8b82-4eabe3308df9

📥 Commits

Reviewing files that changed from the base of the PR and between c817b61 and d26251b.

📒 Files selected for processing (4)
  • .changeset/cute-buttons-roll.md
  • docs/astro.config.ts
  • docs/src/content/docs/organization-authentication.md
  • docs/src/content/docs/resources.md

Comment thread docs/src/content/docs/resources.md Outdated
@nfmelendez
nfmelendez marked this pull request as ready for review June 11, 2026 17:31
@nfmelendez
nfmelendez requested a review from cruzdanilo as a code owner June 11, 2026 17:31

@coderabbitai coderabbitai Bot 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.

♻️ Duplicate comments (1)
docs/astro.config.ts (1)

19-19: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Add trailing comma after "webhooks".

The items array is missing a trailing comma after the last element. As per coding guidelines, all structures (objects, arrays, function arguments) in TypeScript files should use trailing commas to maintain diff-friendliness.

📝 Proposed fix
-        { label: "Docs", items: ["index", "organization-authentication", "resources", "webhooks"] },
+        { label: "Docs", items: ["index", "organization-authentication", "resources", "webhooks",] },

Source: Coding guidelines


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 072d1d29-ddbb-4639-894b-b7dfabbca21f

📥 Commits

Reviewing files that changed from the base of the PR and between d26251b and 1898faa.

📒 Files selected for processing (3)
  • .changeset/cute-buttons-roll.md
  • docs/astro.config.ts
  • docs/src/content/docs/resources.md

@nfmelendez
nfmelendez force-pushed the base-docs branch 2 times, most recently from 70b654d to 1898faa Compare June 11, 2026 18:34

@coderabbitai coderabbitai Bot 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.

Actionable comments posted: 2

♻️ Duplicate comments (4)
docs/src/content/docs/organization-authentication.md (4)

383-383: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Validate INTEGRATOR_ADMIN_PRIVATE_KEY before use.

The code asserts process.env.INTEGRATOR_ADMIN_PRIVATE_KEY as Hex without checking if it is defined. If undefined, privateKeyToAccount will fail at runtime.


462-462: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Validate INTEGRATOR_ADMIN_PRIVATE_KEY before use.

The code asserts process.env.INTEGRATOR_ADMIN_PRIVATE_KEY as Hex without checking if it is defined. If undefined, privateKeyToAccount will fail at runtime.


101-101: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Validate INTEGRATOR_ADMIN_PRIVATE_KEY before use.

The code asserts process.env.INTEGRATOR_ADMIN_PRIVATE_KEY as Hex without checking if it is defined. If undefined, privateKeyToAccount will fail at runtime.

🛡️ Proposed fix
+const INTEGRATOR_ADMIN_PRIVATE_KEY = process.env.INTEGRATOR_ADMIN_PRIVATE_KEY as Hex | undefined;
+if (!INTEGRATOR_ADMIN_PRIVATE_KEY) throw new Error("INTEGRATOR_ADMIN_PRIVATE_KEY environment variable is required");
+
-const owner = privateKeyToAccount(process.env.INTEGRATOR_ADMIN_PRIVATE_KEY as Hex);
+const owner = privateKeyToAccount(INTEGRATOR_ADMIN_PRIVATE_KEY);

364-403: 🧹 Nitpick | 🔵 Trivial | ⚖️ Poor tradeoff

Align the invite section with the "Creating an organization" pattern: use environment-driven domain and chain.

The "Creating an organization" section (lines 85–155) derives domain from API_BASE_URL and uses baseSepolia chain. This invite section hardcodes domain = "sandbox.exactly.app" and uses optimismSepolia (line 369), creating an inconsistency. For production-ready examples, adopt the same environment-driven approach and chain selection used earlier.

♻️ Proposed pattern
-const chainId = optimismSepolia.id;
-
-const domain = "sandbox.exactly.app";
+const API_BASE_URL = process.env.API_BASE_URL;
+if (!API_BASE_URL) throw new Error("API_BASE_URL environment variable is required");
+const domain = new URL(API_BASE_URL).hostname;

-const authClient = createAuthClient({
-  baseURL: `https://${domain}`,
+import { baseSepolia } from "viem/chains";
+const chainId = baseSepolia.id;
+
+const authClient = createAuthClient({
+  baseURL: API_BASE_URL,
   plugins: [siweClient(), organizationClient()],
 });

Also apply the same change to the "How to accept an invite" section (line 440–518, currently using optimismSepolia and hardcoded domain at lines 455–456).


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 9d90f30f-5932-4b8b-b67e-4bbcc8e115c7

📥 Commits

Reviewing files that changed from the base of the PR and between 1898faa and 26ade5b.

📒 Files selected for processing (4)
  • .changeset/cute-buttons-roll.md
  • docs/astro.config.ts
  • docs/src/content/docs/organization-authentication.md
  • docs/src/content/docs/resources.md

Comment thread docs/src/content/docs/organization-authentication.md Outdated
Comment thread docs/src/content/docs/organization-authentication.md Outdated

@coderabbitai coderabbitai Bot 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.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
docs/src/content/docs/organization-authentication.md (1)

108-121: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Guard the nonce result before signing.

nonceResult?.nonce ?? "" can still produce an invalid SIWE message if the nonce lookup fails. The invite/accept snippets already guard this path; this section should match that pattern.

♻️ Duplicate comments (3)
docs/src/content/docs/organization-authentication.md (2)

101-101: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Validate INTEGRATOR_ADMIN_PRIVATE_KEY before privateKeyToAccount.

The unchecked cast still lets a missing env var reach the account constructor and fail at runtime.


374-403: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Derive the SIWE domain from API_BASE_URL in both invite flows.

Both snippets still hardcode sandbox.exactly.app, so the examples diverge from the environment-driven setup above and won't stay correct outside sandbox.

Also applies to: 455-482

docs/astro.config.ts (1)

19-19: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Restore the trailing comma after webhooks.

The Docs sidebar array still violates the repo's trailing-comma rule. As per coding guidelines, use trailing commas in TypeScript arrays.

Source: Coding guidelines


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: ca56bc31-ad02-40dc-ac85-8efa02109039

📥 Commits

Reviewing files that changed from the base of the PR and between 26ade5b and ce3b598.

📒 Files selected for processing (4)
  • .changeset/cute-buttons-roll.md
  • docs/astro.config.ts
  • docs/src/content/docs/organization-authentication.md
  • docs/src/content/docs/resources.md

@cruzdanilo
cruzdanilo merged commit ce3b598 into main Jun 12, 2026
10 of 12 checks passed
@cruzdanilo
cruzdanilo deleted the base-docs branch June 12, 2026 13:24
Sign up for free to 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