@@ -7,65 +7,63 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77
88## [ 1.0.0] - 2026-03-18
99
10- ### Breaking Changes
11-
12- - ** Base URL** changed from ` /v1 ` to ` /api/v1 ` to match production API
13- - ** ` PaginatedResponse ` ** field renamed: ` total ` → ` total_count `
14- - ** ` Company ` ** model restructured: removed ` legal_seat ` , ` capital_nominal ` , ` capital_currency ` , ` auditor_name ` , ` registration_date ` , ` deletion_date ` , ` data_source ` , ` last_modified ` ; added ` address ` , ` auditor_category ` , ` created_at ` , ` updated_at `
15- - ** ` Person ` ** model simplified: ` first_name ` /` last_name ` → ` name ` , ` roles ` is now ` Vec<String> ` , added ` companies: Vec<String> `
16- - ** ` Dossier ` ** model restructured: removed ` id ` , ` status ` , ` executive_summary ` , ` key_insights ` , ` risk_factors ` ; added ` company_name ` , ` summary ` , ` risk_score `
17- - ** ` GenerateDossierRequest ` ** field renamed: ` level ` → ` dossier_type ` (serialized as ` "type" ` )
18- - ** Dossier generation** path changed from ` POST /dossiers ` to ` POST /dossiers/{uid}/generate `
19- - ** ` ApiKeyInfo ` ** renamed to ` ApiKey ` with simplified fields; ` ApiKeyCreated.raw_key ` → ` key `
20- - ** ` CreateApiKeyRequest ` ** simplified: removed ` permissions ` , ` is_test ` → ` is_test_key `
21- - ** ` UsageBreakdown.period ` ** changed from ` Option<UsagePeriod> ` to ` Option<String> ` ; removed ` UsagePeriod ` and ` UsageOperation.count `
22- - ** Billing types** unified: ` CheckoutSessionResponse ` /` PortalSessionResponse ` → ` SessionUrlResponse ` ; billing methods now take ` CheckoutRequest ` instead of ` &str `
23- - ** Billing paths** changed: ` /billing/checkout ` → ` /billing/checkout-session ` , ` /billing/portal ` → ` /billing/portal-session `
24- - ** ` CreateTeamRequest ` ** now includes optional ` owner_email ` and ` owner_name `
25- - ** ` Team ` ** now includes ` updated_at `
26- - ** Companies resource** : ` search() ` renamed to ` list() ` , old ` count() ` now takes ` CompanyCountParams ` instead of ` CompanySearchParams `
27- - ** Removed resources** : ` webhooks() ` , ` users() ` , ` settings() ` — not in final API spec
10+ First stable release, aligned with the VynCo OpenAPI 1.0.0 specification.
2811
2912### Added
3013
31- - ** 7 new resource modules** with 23 new endpoints:
32- - ` changes() ` — ` list ` , ` by_company ` , ` statistics ` , ` by_sogc ` , ` review ` , ` batch `
33- - ` analytics() ` — ` cluster ` , ` anomalies ` , ` cohorts ` , ` cantons ` , ` auditors ` , ` rfm_segments ` , ` velocity `
34- - ` watches() ` — ` list ` , ` create ` , ` remove ` , ` notifications `
35- - ` news() ` — ` for_company ` , ` recent `
36- - ` reports() ` — ` for_company `
37- - ` relationships() ` — ` for_company ` , ` hierarchy `
38- - ` health() ` — ` check `
39- - ** New company endpoints** : ` search ` (POST full-text), ` batch ` (multi-UID lookup), ` compare ` (side-by-side)
40- - ** Expanded persons** : ` list ` , ` roles ` , ` connections ` , ` board_members ` , ` network_stats `
41- - ** Expanded dossiers** : ` list ` , ` get ` , ` statistics `
42- - ** Expanded teams** : ` members ` , ` invite_member ` , ` update_member_role ` , ` remove_member ` , ` billing_summary `
43- - ** New types** : ` CompanyStatistics ` , ` CompanyRelationship ` , ` RelationshipResponse ` , ` CompanyWatch ` , ` CreateWatchRequest ` , ` ChangeNotification ` , ` TeamMember ` , ` InviteMemberRequest ` , ` UpdateMemberRoleRequest ` , ` BillingSummary ` , ` MemberUsage ` , ` CreditLedgerEntry ` , ` HealthResponse ` , ` HealthCheck ` , ` ChangeStatistics ` , ` ReviewChangeRequest ` , ` ReviewChangeResponse ` , ` BatchChangeRequest ` , ` CompanySearchRequest ` , ` BatchCompanyRequest ` , ` CompareCompaniesRequest ` , ` ClusterRequest ` , ` AnomalyRequest ` , ` CohortParams ` , ` CompanyNewsResponse ` , ` RecentNewsResponse ` , ` CompanyReportsResponse `
44- - ** ` ErrorBody ` ** now includes ` error_type ` and ` title ` fields for RFC 7807 compliance
14+ - ** 7 new resource modules** (23 endpoints):
15+ - ` changes() ` — list, by_company, statistics, by_sogc, review, batch
16+ - ` analytics() ` — cluster, anomalies, cohorts, cantons, auditors, rfm_segments, velocity
17+ - ` watches() ` — list, create, remove, notifications
18+ - ` news() ` — for_company, recent
19+ - ` reports() ` — for_company
20+ - ` relationships() ` — for_company, hierarchy
21+ - ` health() ` — check
22+ - ** New company endpoints** : full-text search (POST), batch lookup, compare
23+ - ** Expanded persons** : list, roles, connections, board_members, network_stats
24+ - ** Expanded dossiers** : list, get, statistics
25+ - ** Expanded teams** : members, invite_member, update_member_role, remove_member, billing_summary
4526- ** ` VyncoError::Conflict ` ** variant for HTTP 409
46- - ** ` ResponseMeta ` ** now includes ` rate_limit_remaining ` (` X-RateLimit-Remaining ` ) and ` rate_limit_reset ` (` X-RateLimit-Reset ` )
47- - ** 16 integration tests** covering all error variants, company endpoints, changes, health, API keys, credits, and response metadata
27+ - ** RFC 7807 ProblemDetails** fields on ` ErrorBody ` (` error_type ` , ` title ` )
28+ - ** Rate limit headers** on ` ResponseMeta ` (` rate_limit_remaining ` , ` rate_limit_reset ` )
29+ - ** CI/CD** via GitHub Actions with automated crates.io publishing on tags
30+
31+ ### Changed
32+
33+ - ** Base URL** : ` /v1 ` → ` /api/v1 `
34+ - ** ` PaginatedResponse ` ** : ` total ` → ` total_count `
35+ - ** ` Company ` ** model: replaced ` legal_seat ` , ` capital_nominal ` , ` capital_currency ` , ` auditor_name ` , ` registration_date ` , ` deletion_date ` , ` data_source ` , ` last_modified ` with ` address ` , ` auditor_category ` , ` created_at ` , ` updated_at `
36+ - ** ` Person ` ** model: simplified to ` name ` , ` roles: Vec<String> ` , ` companies: Vec<String> `
37+ - ** ` Dossier ` ** model: now uses ` company_name ` , ` summary ` , ` risk_score `
38+ - ** ` GenerateDossierRequest ` ** : ` level ` → ` dossier_type ` (serialized as ` "type" ` )
39+ - ** Dossier generation path** : ` POST /dossiers ` → ` POST /dossiers/{uid}/generate `
40+ - ** ` ApiKeyInfo ` ** → ` ApiKey ` ; ` ApiKeyCreated.raw_key ` → ` key `
41+ - ** ` CreateApiKeyRequest ` ** : simplified (removed ` permissions ` , ` is_test ` → ` is_test_key ` )
42+ - ** Billing types** : unified ` CheckoutSessionResponse ` /` PortalSessionResponse ` → ` SessionUrlResponse `
43+ - ** Billing paths** : ` /billing/checkout ` → ` /billing/checkout-session ` , ` /billing/portal ` → ` /billing/portal-session `
44+ - ** Companies resource** : ` search() ` → ` list() ` , ` count() ` now takes ` CompanyCountParams `
45+ - ** Tests** : expanded from 12 → 16 covering new endpoints and error variants
4846
4947### Removed
5048
51- - ` Webhooks ` resource and related types (` Webhook ` , ` WebhookCreated ` , ` CreateWebhookRequest ` , ` UpdateWebhookRequest ` )
52- - ` Users ` resource and related types (` UserProfile ` , ` UpdateProfileRequest ` )
53- - ` Settings ` resource
54- - ` PersonRole ` type (person roles are now ` Vec<String> ` )
55- - ` PersonSearchParams ` type (replaced by ` PersonListParams ` )
56- - ` CompanySearchParams ` type (replaced by ` CompanyListParams ` and ` CompanyCountParams ` )
57- - ` UsagePeriod ` type
49+ - ` webhooks() ` , ` users() ` , ` settings() ` resources (not in final API)
50+ - Types: ` Webhook ` , ` WebhookCreated ` , ` CreateWebhookRequest ` , ` UpdateWebhookRequest ` , ` UserProfile ` , ` UpdateProfileRequest ` , ` PersonRole ` , ` PersonSearchParams ` , ` CompanySearchParams ` , ` UsagePeriod `
5851
5952## [ 0.1.0] - 2026-03-17
6053
54+ Initial release (draft API).
55+
6156### Added
6257
63- - ** Async client** with builder pattern (` Client::builder(api_key).build() ` )
64- - ** Blocking client** behind ` blocking ` feature flag for synchronous usage
65- - ** 10 resource modules** covering the VynCo draft API
66- - ** Response metadata** via ` Response<T> ` wrapper exposing API headers
67- - ** Typed error handling** with ` VyncoError ` enum mapping HTTP status codes
68- - ** Automatic retry** with exponential backoff on 429 and 5xx responses
69- - ** Retry-After header** support for rate-limited requests
70- - ** TLS backend selection** via ` rustls-tls ` (default) or ` native-tls ` features
71- - ** 12 integration tests** with mockito
58+ - Async client with builder pattern
59+ - Blocking client behind ` blocking ` feature flag
60+ - 10 resource modules (30 endpoints)
61+ - Response metadata wrapper (` Response<T> ` ) with 5 API headers
62+ - Typed error handling with ` VyncoError ` enum (7 HTTP status variants)
63+ - Automatic retry with exponential backoff on 429/5xx
64+ - Retry-After header support
65+ - TLS backend selection (rustls default, native-tls optional)
66+ - 12 integration tests with mockito
67+
68+ [ 1.0.0 ] : https://github.com/VynCorp/vc-rust/compare/v0.1.0...v1.0.0
69+ [ 0.1.0 ] : https://github.com/VynCorp/vc-rust/releases/tag/v0.1.0
0 commit comments