Files
supabase/apps/docs/content/navigation.references.ts
T
Guillaume Faas 1531eb427d docs(csharp): add new C# Reference for v8.0.0 (#50116)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES

## What kind of change does this PR introduce?

Documentation update: add a new page for the C# SDK reference v8.0.0


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
  * Added C# client reference documentation for version 8.1.0.
  * Added navigation for the C# Reference v8 documentation.
* Documented authentication, database, Realtime, Storage, filtering, and
query APIs with C# examples.

* **Documentation**
* Added C# SDK 8.0.0 and 8.1.0 release notes, including breaking
changes, new capabilities, and bug fixes.
* Updated documentation version listings and search coverage for C# v8.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-09-14 10:07:26 +02:00

220 lines
5.1 KiB
TypeScript

import { isFeatureEnabled } from 'common/enabled-features'
const {
sdkCsharp: sdkCsharpEnabled,
sdkDart: sdkDartEnabled,
sdkKotlin: sdkKotlinEnabled,
sdkPython: sdkPythonEnabled,
sdkSwift: sdkSwiftEnabled,
} = isFeatureEnabled(['sdk:csharp', 'sdk:dart', 'sdk:kotlin', 'sdk:python', 'sdk:swift'])
export const REFERENCES = {
javascript: {
type: 'sdk',
name: 'JavaScript',
library: 'supabase-js',
libPath: 'javascript',
versions: ['v2', 'v1'],
typeSpec: true,
icon: 'reference-javascript',
meta: {
v2: {
// JS v2 is driven by the new reference pipeline
// (`scripts/build-reference-content.ts` + `spec/reference/javascript/v2/`).
// It intentionally has no `specFile` — the legacy YAML loader skips it.
libId: 'reference_javascript_v2',
},
v1: {
libId: 'reference_javascript_v1',
specFile: 'supabase_js_v1',
},
},
},
server: {
type: 'sdk',
name: 'Server',
library: '@supabase/server',
libPath: 'server',
versions: ['v1'],
typeSpec: true,
icon: 'reference-javascript',
meta: {
v1: {
libId: 'reference_server_v1',
},
},
},
middleware: {
type: 'sdk',
name: 'Middleware',
library: '@supabase/middleware',
libPath: 'middleware',
versions: ['v1'],
typeSpec: true,
icon: 'reference-javascript',
meta: {
v1: {
libId: 'reference_middleware_v1',
},
},
},
dart: {
type: 'sdk',
name: 'Flutter',
library: 'supabase-dart',
libPath: 'dart',
versions: ['v2', 'v1'],
icon: 'reference-dart',
meta: {
v2: {
// Dart v2 is driven by the new reference pipeline
// (`scripts/build-reference-content.ts` + `spec/reference/dart/v2/`).
// It intentionally has no `specFile`, so the legacy YAML loader skips it.
libId: 'reference_dart_v2',
},
v1: {
libId: 'reference_dart_v1',
specFile: 'supabase_dart_v1',
},
},
enabled: sdkDartEnabled,
},
csharp: {
type: 'sdk',
name: 'C#',
library: 'supabase-csharp',
libPath: 'csharp',
versions: ['v8', 'v1', 'v0'],
icon: 'reference-csharp',
meta: {
v8: {
libId: 'reference_csharp_v8',
specFile: 'supabase_csharp_v8',
},
v1: {
libId: 'reference_csharp_v1',
specFile: 'supabase_csharp_v1',
},
v0: {
libId: 'reference_csharp_v0',
specFile: 'supabase_csharp_v0',
},
},
enabled: sdkCsharpEnabled,
},
swift: {
type: 'sdk',
name: 'Swift',
library: 'supabase-swift',
libPath: 'swift',
versions: ['v2', 'v1'],
icon: 'reference-swift',
meta: {
v2: {
libId: 'reference_swift_v2',
specFile: 'supabase_swift_v2',
},
v1: {
libId: 'reference_swift_v1',
specFile: 'supabase_swift_v1',
},
},
enabled: sdkSwiftEnabled,
},
kotlin: {
type: 'sdk',
name: 'Kotlin',
library: 'supabase-kt',
libPath: 'kotlin',
versions: ['v3', 'v2', 'v1'],
icon: 'reference-kotlin',
meta: {
v3: {
libId: 'reference_kotlin_v3',
specFile: 'supabase_kt_v3',
},
v2: {
libId: 'reference_kotlin_v2',
specFile: 'supabase_kt_v2',
},
v1: {
libId: 'reference_kotlin_v1',
specFile: 'supabase_kt_v1',
},
},
enabled: sdkKotlinEnabled,
},
python: {
type: 'sdk',
name: 'Python',
library: 'supabase-py',
libPath: 'python',
versions: ['v2'],
icon: 'reference-python',
meta: {
v2: {
libId: 'reference_python_v2',
specFile: 'supabase_py_v2',
},
},
enabled: sdkPythonEnabled,
},
cli: {
type: 'cli',
name: 'CLI',
libPath: 'cli',
versions: [],
icon: 'reference-cli',
},
api: {
type: 'api',
name: 'API',
libPath: 'api',
versions: [],
icon: 'reference-api',
},
self_hosting_analytics: {
type: 'self-hosting',
name: 'Self-Hosting Analytics',
libPath: 'self-hosting-analytics',
versions: [],
icon: 'reference-analytics',
},
self_hosting_auth: {
type: 'self-hosting',
name: 'Self-Hosting Auth',
libPath: 'self-hosting-auth',
versions: [],
icon: 'self-hosting',
},
self_hosting_functions: {
type: 'self-hosting',
name: 'Self-Hosting Functions',
libPath: 'self-hosting-functions',
versions: [],
icon: 'reference-functions',
},
self_hosting_realtime: {
type: 'self-hosting',
name: 'Self-Hosting Realtime',
libPath: 'self-hosting-realtime',
versions: [],
icon: 'self-hosting',
},
self_hosting_storage: {
type: 'self-hosting',
name: 'Self-Hosting Storage',
libPath: 'self-hosting-storage',
versions: [],
icon: 'self-hosting',
},
} as const
export const clientSdkIds = Object.keys(REFERENCES).filter(
(reference) => REFERENCES[reference].type === 'sdk' && REFERENCES[reference].enabled !== false
)
export const selfHostingServices = Object.keys(REFERENCES).filter(
(reference) => REFERENCES[reference].type === 'self-hosting'
)