@ofidj/contracts 3.6.24 → 3.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -15
- package/README.md +8 -6
- package/bpInfo.js +1 -1
- package/bpInfo.js.map +1 -1
- package/fidj-api/FidjApiAccountSelfService.d.ts +20 -0
- package/fidj-api/{FidjApiAppsOAuthStatusResponse.js → FidjApiAccountSelfService.js} +1 -1
- package/fidj-api/FidjApiAccountSelfService.js.map +1 -0
- package/fidj-api/FidjApiAppsPublicResponse.d.ts +5 -0
- package/fidj-api/FidjApiAppsUsersResponse.d.ts +26 -0
- package/fidj-api/FidjApiPurposes.d.ts +53 -0
- package/fidj-api/FidjApiPurposes.js +3 -0
- package/fidj-api/FidjApiPurposes.js.map +1 -0
- package/fidj-api/FidjApiTokensCreateRequest.d.ts +2 -0
- package/fidj-api/FidjApiUsersMeDetailsResponse.d.ts +1 -0
- package/fidj-api/FidjApiUsersMeResponse.d.ts +1 -0
- package/fidj-api/index.d.ts +2 -1
- package/fidj-api/index.js +2 -1
- package/fidj-api/index.js.map +1 -1
- package/package.json +1 -1
- package/fidj-api/FidjApiAppsOAuthStatusResponse.d.ts +0 -5
- package/fidj-api/FidjApiAppsOAuthStatusResponse.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,28 +1,27 @@
|
|
|
1
|
-
|
|
1
|
+
# Changelog
|
|
2
2
|
|
|
3
|
-
-
|
|
3
|
+
- Describe login acceptance fields and public versioned app-agreement metadata.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Dated entries are historical; current workflow is in the package README.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
## [3.7.0] - 2026-09-11
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Minor, not patch: `FidjApiAppsOAuthStatusResponse` is removed. It described the
|
|
10
|
+
legacy per-app OAuth connector, whose routes answer 410 since 3.6.26, but the
|
|
11
|
+
export going away is a break for anyone importing the type.
|
|
10
12
|
|
|
11
|
-
- Add
|
|
13
|
+
- Add `pendingEmail`, the email-change and session contracts, and search/paging fields on the owner user list.
|
|
14
|
+
- Remove `FidjApiAppsOAuthStatusResponse` with the legacy OAuth connector it described.
|
|
15
|
+
- Compile contracts without ambient consumer test globals so nested workspace builds remain consistent.
|
|
12
16
|
|
|
17
|
+
- Add the optional public app home URL to the public response contract.
|
|
18
|
+
- Add typed OIDC, organization/member/group/access and external-provider capability contracts.
|
|
19
|
+
- Correct owner user-list payloads and expose closing-app status.
|
|
20
|
+
- Add app groups, handler readiness and automatic erasure retry receipt contracts.
|
|
13
21
|
- Connect generated app data export/erasure, durable retry state and scoped completion receipts.
|
|
14
|
-
|
|
15
22
|
- Add shared-account password recovery and email verification integration.
|
|
16
|
-
|
|
17
23
|
- Local scenario: include Fidj in privacy, distinguish platform membership, and connect Alex’s personal and Studio Notes owner journeys.
|
|
18
24
|
|
|
19
|
-
All notable changes to this project will be documented in this file.
|
|
20
|
-
|
|
21
|
-
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
22
|
-
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
23
|
-
|
|
24
|
-
## [Unreleased]
|
|
25
|
-
|
|
26
25
|
### Local validation milestone (3.6.24)
|
|
27
26
|
|
|
28
27
|
- Add app identity to consent responses and typed personal-app, export and erasure payloads.
|
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
TypeScript API contracts for Fidj services — request/response interfaces for REST endpoints (API v3).
|
|
4
4
|
|
|
5
|
-
> _Renamed from `fidj-api-contracts` at 1.0.0. The
|
|
5
|
+
> _Renamed from `fidj-api-contracts` at 1.0.0. The API remains `/v3`; the current 3.6.x package versions align with the coordinated API work._
|
|
6
6
|
|
|
7
7
|
## Structure
|
|
8
8
|
|
|
@@ -30,9 +30,13 @@ import {FidjApiUsersCreateRequest, FidjApiConsentsResponse} from '@ofidj/contrac
|
|
|
30
30
|
```bash
|
|
31
31
|
npm run build # Compile TypeScript
|
|
32
32
|
npm run bp:style:fix # Lint + format
|
|
33
|
-
npm
|
|
33
|
+
npm test # Placeholder only; does not validate behavior
|
|
34
34
|
```
|
|
35
35
|
|
|
36
|
+
## Validation
|
|
37
|
+
|
|
38
|
+
Follow [workspace TDD](../AGENTS.md): write a failing consumer/type fixture before changing a contract, implement until green, then refactor. Build this package and run affected API/SDK checks. The release-check script currently references a missing dependency-switch command; see the [release rules](../README.md#branches-and-releases).
|
|
39
|
+
|
|
36
40
|
## Account lifecycle
|
|
37
41
|
|
|
38
42
|
`FidjApiResetPasswordRequest` and `FidjApiVerifyEmailRequest` describe the one-use password reset and explicit email confirmation payloads. Recovery operates on the shared account; consent and erasure remain scoped to each app.
|
|
@@ -47,8 +51,6 @@ Authenticated `PUT /me` password changes require `{currentPassword, password}`.
|
|
|
47
51
|
|
|
48
52
|
Owner details include `deletionPending`. Owner user-list contracts now describe the actual limited profile/role objects and per-app consent summary, replacing the old string-only declarations. This is a coordinated development-contract correction.
|
|
49
53
|
|
|
50
|
-
##
|
|
51
|
-
|
|
52
|
-
`FidjApiOidcConfiguration`, `FidjApiOrganization`, `FidjApiOrganizationAccess`, `FidjOrganizationMember`, `FidjOrganizationGroup` and `FidjApiExternalProvider` describe the coordinated identity expansion. Organization members identify app contracts; roles and suspension are tenant-scoped. External capability flags distinguish linking/revoking a Fidj grant from provider-account deletion, which is unsupported.
|
|
54
|
+
## Experimental types
|
|
53
55
|
|
|
54
|
-
|
|
56
|
+
OIDC, organization and external-provider interfaces are development contracts, not evidence of implemented API routes. The workspace API has no OIDC provider or organization tenancy. Verify server behavior before using these types in an integration.
|
package/bpInfo.js
CHANGED
package/bpInfo.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bpInfo.js","sourceRoot":"","sources":["../src/bpInfo.ts"],"names":[],"mappings":";;;AAAa,QAAA,MAAM,GAAG,EAAC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"bpInfo.js","sourceRoot":"","sources":["../src/bpInfo.ts"],"names":[],"mappings":";;;AAAa,QAAA,MAAM,GAAG,EAAC,OAAO,EAAE,QAAQ,EAAC,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface FidjApiMeEmailChangeRequest {
|
|
2
|
+
email: string;
|
|
3
|
+
currentPassword: string;
|
|
4
|
+
}
|
|
5
|
+
export interface FidjApiMeEmailChangeResponse {
|
|
6
|
+
pendingEmail: string;
|
|
7
|
+
message: string;
|
|
8
|
+
}
|
|
9
|
+
export interface FidjApiMeSessionsResponse {
|
|
10
|
+
sessions: {
|
|
11
|
+
id: string;
|
|
12
|
+
app: string;
|
|
13
|
+
appId: string;
|
|
14
|
+
client_udid: string;
|
|
15
|
+
client_info: string;
|
|
16
|
+
createdAt: string;
|
|
17
|
+
endDate: string;
|
|
18
|
+
current: boolean;
|
|
19
|
+
}[];
|
|
20
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FidjApiAccountSelfService.js","sourceRoot":"","sources":["../../src/fidj-api/FidjApiAccountSelfService.ts"],"names":[],"mappings":""}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
export interface FidjApiAppsUsersResponse {
|
|
2
|
+
total?: number;
|
|
3
|
+
page?: number;
|
|
4
|
+
pageSize?: number;
|
|
2
5
|
users: {
|
|
3
6
|
_id: string;
|
|
4
7
|
owner: {
|
|
@@ -25,3 +28,26 @@ export interface FidjApiAppsUsersResponse {
|
|
|
25
28
|
} | null;
|
|
26
29
|
}[];
|
|
27
30
|
}
|
|
31
|
+
export interface FidjApiAppsUserConsentResponse {
|
|
32
|
+
user: {
|
|
33
|
+
id: string;
|
|
34
|
+
name?: string;
|
|
35
|
+
email: string;
|
|
36
|
+
emailVerified: boolean;
|
|
37
|
+
};
|
|
38
|
+
consent: {
|
|
39
|
+
terms: boolean;
|
|
40
|
+
termsVersion: string | null;
|
|
41
|
+
termsAcceptedAt: string | null;
|
|
42
|
+
analytics: boolean;
|
|
43
|
+
communications: boolean;
|
|
44
|
+
optionalData: boolean;
|
|
45
|
+
};
|
|
46
|
+
history: {
|
|
47
|
+
type: string;
|
|
48
|
+
granted: boolean;
|
|
49
|
+
changedAt: string;
|
|
50
|
+
source?: string;
|
|
51
|
+
cguVersion?: string;
|
|
52
|
+
}[];
|
|
53
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export type FidjApiLawfulBasis = 'consent' | 'contract' | 'legal_obligation' | 'vital_interests' | 'public_task' | 'legitimate_interests';
|
|
2
|
+
export type FidjApiPurposeControl = 'none' | 'consent_switch' | 'objection' | 'revoke' | 'leave_app' | 'link_unlink' | 'export_only';
|
|
3
|
+
export interface FidjApiPurpose {
|
|
4
|
+
purposeId: string;
|
|
5
|
+
version: number;
|
|
6
|
+
status: 'published' | 'withheld';
|
|
7
|
+
controllership: 'controller' | 'processor' | 'joint_controller';
|
|
8
|
+
name: string;
|
|
9
|
+
description: string;
|
|
10
|
+
controller: {
|
|
11
|
+
name: string;
|
|
12
|
+
contact: string;
|
|
13
|
+
privacyContact?: string;
|
|
14
|
+
dpo?: string | null;
|
|
15
|
+
};
|
|
16
|
+
dataCategories: string[];
|
|
17
|
+
lawfulBasis: FidjApiLawfulBasis;
|
|
18
|
+
basisEvidence: {
|
|
19
|
+
necessityStatement?: string | null;
|
|
20
|
+
legalReference?: string | null;
|
|
21
|
+
balancingTestRef?: string | null;
|
|
22
|
+
article9Condition?: string | null;
|
|
23
|
+
};
|
|
24
|
+
required: boolean;
|
|
25
|
+
defaultState: 'off' | null;
|
|
26
|
+
control: FidjApiPurposeControl;
|
|
27
|
+
retention: {
|
|
28
|
+
trigger: string;
|
|
29
|
+
days: number;
|
|
30
|
+
label: string;
|
|
31
|
+
};
|
|
32
|
+
withdrawalEffect: string;
|
|
33
|
+
objectionRight: boolean;
|
|
34
|
+
recipients: string[];
|
|
35
|
+
transfers: {
|
|
36
|
+
outsideEEA: boolean;
|
|
37
|
+
safeguard: string | null;
|
|
38
|
+
};
|
|
39
|
+
automatedDecision: boolean;
|
|
40
|
+
implementation: {
|
|
41
|
+
implemented: boolean;
|
|
42
|
+
verified?: boolean;
|
|
43
|
+
enforced: boolean;
|
|
44
|
+
code?: string;
|
|
45
|
+
gap?: string;
|
|
46
|
+
};
|
|
47
|
+
publishedAt?: string;
|
|
48
|
+
}
|
|
49
|
+
export interface FidjApiPurposesResponse {
|
|
50
|
+
schemaVersion: string;
|
|
51
|
+
purposes: FidjApiPurpose[];
|
|
52
|
+
}
|
|
53
|
+
export type FidjApiPurposeWriteRequest = FidjApiPurpose;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FidjApiPurposes.js","sourceRoot":"","sources":["../../src/fidj-api/FidjApiPurposes.ts"],"names":[],"mappings":""}
|
package/fidj-api/index.d.ts
CHANGED
|
@@ -17,7 +17,6 @@ export * from './FidjApiAppsPublicResponse';
|
|
|
17
17
|
export * from './FidjApiAppsDetailsResponse';
|
|
18
18
|
export * from './FidjApiAppsUpdateRequest';
|
|
19
19
|
export * from './FidjApiAppsUsersResponse';
|
|
20
|
-
export * from './FidjApiAppsOAuthStatusResponse';
|
|
21
20
|
export * from './FidjApiAppsMeDetailsResponse';
|
|
22
21
|
export * from './FidjApiContractsListResponse';
|
|
23
22
|
export * from './FidjApiContractsCreateRequest';
|
|
@@ -27,4 +26,6 @@ export * from './FidjApiTokensCreateResponse';
|
|
|
27
26
|
export * from './FidjApiPrivacyResponse';
|
|
28
27
|
export * from './FidjApiAccountRecovery';
|
|
29
28
|
export * from './FidjApiGroups';
|
|
29
|
+
export * from './FidjApiPurposes';
|
|
30
30
|
export * from "./identity";
|
|
31
|
+
export * from './FidjApiAccountSelfService';
|
package/fidj-api/index.js
CHANGED
|
@@ -38,7 +38,6 @@ __exportStar(require("./FidjApiAppsPublicResponse"), exports);
|
|
|
38
38
|
__exportStar(require("./FidjApiAppsDetailsResponse"), exports);
|
|
39
39
|
__exportStar(require("./FidjApiAppsUpdateRequest"), exports);
|
|
40
40
|
__exportStar(require("./FidjApiAppsUsersResponse"), exports);
|
|
41
|
-
__exportStar(require("./FidjApiAppsOAuthStatusResponse"), exports);
|
|
42
41
|
__exportStar(require("./FidjApiAppsMeDetailsResponse"), exports);
|
|
43
42
|
// Contracts
|
|
44
43
|
__exportStar(require("./FidjApiContractsListResponse"), exports);
|
|
@@ -50,5 +49,7 @@ __exportStar(require("./FidjApiTokensCreateResponse"), exports);
|
|
|
50
49
|
__exportStar(require("./FidjApiPrivacyResponse"), exports);
|
|
51
50
|
__exportStar(require("./FidjApiAccountRecovery"), exports);
|
|
52
51
|
__exportStar(require("./FidjApiGroups"), exports);
|
|
52
|
+
__exportStar(require("./FidjApiPurposes"), exports);
|
|
53
53
|
__exportStar(require("./identity"), exports);
|
|
54
|
+
__exportStar(require("./FidjApiAccountSelfService"), exports);
|
|
54
55
|
//# sourceMappingURL=index.js.map
|
package/fidj-api/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fidj-api/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,SAAS;AACT,0DAAwC;AACxC,yDAAuC;AAEvC,OAAO;AACP,6DAA2C;AAC3C,8DAA4C;AAE5C,QAAQ;AACR,8DAA4C;AAC5C,+DAA6C;AAC7C,2DAAyC;AACzC,kEAAgD;AAChD,gEAA8C;AAC9C,8DAA4C;AAE5C,kBAAkB;AAClB,4DAA0C;AAC1C,iEAA+C;AAC/C,mEAAiD;AAEjD,OAAO;AACP,6DAA2C;AAC3C,8DAA4C;AAC5C,8DAA4C;AAC5C,+DAA6C;AAC7C,6DAA2C;AAC3C,6DAA2C;AAC3C,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fidj-api/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,SAAS;AACT,0DAAwC;AACxC,yDAAuC;AAEvC,OAAO;AACP,6DAA2C;AAC3C,8DAA4C;AAE5C,QAAQ;AACR,8DAA4C;AAC5C,+DAA6C;AAC7C,2DAAyC;AACzC,kEAAgD;AAChD,gEAA8C;AAC9C,8DAA4C;AAE5C,kBAAkB;AAClB,4DAA0C;AAC1C,iEAA+C;AAC/C,mEAAiD;AAEjD,OAAO;AACP,6DAA2C;AAC3C,8DAA4C;AAC5C,8DAA4C;AAC5C,+DAA6C;AAC7C,6DAA2C;AAC3C,6DAA2C;AAC3C,iEAA+C;AAE/C,YAAY;AACZ,iEAA+C;AAC/C,kEAAgD;AAChD,kEAAgD;AAEhD,SAAS;AACT,+DAA6C;AAC7C,gEAA8C;AAE9C,2DAAyC;AAEzC,2DAAyC;AAEzC,kDAAgC;AAChC,oDAAkC;AAElC,6CAA2B;AAC3B,8DAA4C"}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FidjApiAppsOAuthStatusResponse.js","sourceRoot":"","sources":["../../src/fidj-api/FidjApiAppsOAuthStatusResponse.ts"],"names":[],"mappings":""}
|