diff --git a/guides/app-features/csv-imports.mdx b/guides/app-features/csv-imports.mdx index e8f5797..34f0ca1 100644 --- a/guides/app-features/csv-imports.mdx +++ b/guides/app-features/csv-imports.mdx @@ -148,6 +148,13 @@ Sure will import all rows from your CSV. Review your data before importing to av If a CSV import fails during upload or publish, check both the row count and the file size. An import can be under the row limit and still fail if the CSV file is larger than 10 MB. +## Sure NDJSON imports + +When importing a full Sure data export (`.ndjson` file), Sure handles some edge cases gracefully: + +- **Rules with no name**: Rules are allowed to have a blank name. A `null` name in the export file is valid and will not block the import. +- **Orphaned rejected transfers**: If a rejected transfer references a transaction that has since been deleted, Sure skips that row and counts it as a warning rather than failing the entire import. Check the import warnings after completion to see if any rows were skipped. + ## Getting help If you encounter issues with CSV imports: diff --git a/guides/app-features/transactions.mdx b/guides/app-features/transactions.mdx index 4e63e12..9b3387c 100644 --- a/guides/app-features/transactions.mdx +++ b/guides/app-features/transactions.mdx @@ -22,6 +22,10 @@ From this screen you can: Pending transactions may change after they post. If Sure detects that a pending transaction might duplicate a posted one, you can merge the duplicate or keep both transactions. +## Add a transaction + +To add a manual transaction, click **Add transaction** from the Transactions screen. You must select an account before saving — if no account is selected, the form will return a validation error so you can correct it before proceeding. + ## Edit transaction details Open a transaction to update the fields that affect reporting and review: @@ -35,7 +39,7 @@ Open a transaction to update the fields that affect reporting and review: - **Tags**: Extra labels for flexible filtering - **Notes**: Private context for the transaction -You can also mark a transaction as excluded. Excluded transactions are removed from budgeting calculations and reports, which is useful for activity you do not want counted in normal spending analysis. +You can also mark a transaction as excluded. Excluded transactions are removed from budgeting calculations and reports, which is useful for activity you do not want counted in normal spending analysis. Excluded transactions remain visible in the account activity list so you can review or re-include them at any time using the exclude toggle in the transaction drawer. ## Categorize transactions @@ -43,6 +47,8 @@ Categories help Sure group income and expenses consistently. You can assign a ca When there are uncategorized transactions, use the categorize flow to work through them in batches. You can assign a category to each transaction and optionally create a categorization rule so future matching transactions use the same category. +If the category you need doesn't exist yet, you can create it inline from the category selector without leaving the transaction form. Type the new category name and select the option to create it. + Use subcategories when you want more detail within a broader category. For example, a parent category such as **Food & Dining** can contain subcategories such as **Groceries**, **Restaurants**, and **Coffee**. Budgets can use those subcategories individually or share the parent budget. ## Bulk edit transactions diff --git a/providers/lunchflow.mdx b/providers/lunchflow.mdx index 7ffdb4f..55264b8 100644 --- a/providers/lunchflow.mdx +++ b/providers/lunchflow.mdx @@ -90,6 +90,8 @@ LUNCHFLOW_INCLUDE_PENDING=1 When enabled, transactions marked as pending by Lunch Flow will be imported and displayed with a "Pending" badge in the UI. +When a pending transaction posts, Sure detects the change on the next sync and updates the stored transaction in place, clearing the pending status automatically. You do not need to take any action — the "Pending" badge will disappear once the transaction has settled. + ### Debug mode For troubleshooting, you can enable debug logging to see the raw API responses: diff --git a/providers/simplefin.mdx b/providers/simplefin.mdx index 9dff550..38bcba8 100644 --- a/providers/simplefin.mdx +++ b/providers/simplefin.mdx @@ -60,6 +60,10 @@ Sure's SimpleFIN integration includes automatic retry logic: - Handles temporary connection issues gracefully - Prevents sync failures from intermittent network problems +### Duplicate account names + +If you have two accounts at the same institution with identical display names (for example, two accounts both named "CHECKING (0001)"), Sure uses the upstream account ID to distinguish them during sync. This prevents one account from accidentally inheriting the connection or transactions of the other when their names match. + ## API structure SimpleFIN uses a simple REST API with embedded authentication: diff --git a/self-hosting.mdx b/self-hosting.mdx index 0d79c4f..21b5611 100644 --- a/self-hosting.mdx +++ b/self-hosting.mdx @@ -174,6 +174,16 @@ If you enable passkeys or security keys on a public hostname, also set `WEBAUTHN If you only want Cloudflare Tunnel access, do not leave port `3000` broadly exposed to the internet. Keep the host firewall closed or bind the published port more narrowly. +### Sure import file size + +By default, Sure NDJSON imports (full data exports) are limited to a fixed maximum file size. Self-hosted admins can raise this limit with: + +```txt +SURE_IMPORT_MAX_NDJSON_SIZE_MB=200 +``` + +Set the value to the maximum file size in megabytes you want to allow. This applies to both the GUI upload and the API upload paths. + ### Market data provider variables Sure supports multiple securities pricing providers. You can configure them through environment variables or in the UI under **Settings > Self-Hosting**. See [market data providers](/providers/market-data) for details on each provider.