Файли
openidea/sdk/rust/openidea-plugin/tests/api/released/database.wit
T
2026-11-09 21:05:39 +08:00

35 рядки
1.8 KiB
Plaintext
Неформатований Анотація Історія

Цей файл містить неоднозначні символи Юнікоду
Цей файл містить символи Юнікоду, які можна сплутати з іншими символами. Якщо ви вважаєте, що це зроблено навмисно, можете сміливо ігнорувати це попередження. Щоб показати їх, скористайтеся кнопкою Escape.
package openidea:[email protected];
/// Plugin-owned project data sources. Requires database.sources and project trust.
/// Runs on the Database subsystem's host, including on remote project servers.
interface database {
use types.{error};
use workspace.{project};
/// Non-secret connection settings. Id is private to this plugin (1–128 bytes).
/// Drivers: sqlite, postgres, mysql, sqlServer, clickhouse, oracle.
/// SQLite uses database as its file path, or a sqlite: URL. Options are driver properties.
/// URLs and options must not contain passwords, tokens or other credentials.
record data-source {
id: string,
name: string,
driver: string,
host: option<string>,
port: option<u16>,
database: option<string>,
user: option<string>,
url: option<string>,
options: list<tuple<string, string>>,
}
/// Creates or replaces only this plugin's source; unrelated file entries are preserved.
upsert-source: func(project: borrow<project>, source: data-source) -> result<_, error>;
/// Removes an owned source and its credentials; not-found for every other id.
remove-source: func(project: borrow<project>, id: string) -> result<_, error>;
/// Lists only this plugin's private ids, never connection settings or credentials.
sources: func(project: borrow<project>) -> result<list<string>, error>;
/// Writes an owned source's password directly to the Database secure store. Never readable.
set-credential: func(project: borrow<project>, id: string, password: string) -> result<_, error>;
/// Requests the project's usual connection/introspection in the invoking window.
/// Invalid outside a command/event of that project's window.
connect: func(project: borrow<project>, id: string) -> result<_, error>;
}