CHANGELOG.md 11.3 KB
Newer Older
pospi's avatar
pospi committed
1
2
3
4
5
## 0.9.0-alpha.9 (unreleased)

- **Breaking:** introduced an arbitrary-precision `Decimal` type in place of all existing `Float` values to avoid rounding errors in some language backends.
- The pagination parameters `startCursor` and `endCursor` are now nullable, for cases where no results are returned.

pospi's avatar
pospi committed
6
7
8
9
## 0.9.0-alpha.8

- Fixed schema files for `Commitment`, `Intent`, `Fulfillment` & `Satisfaction` history queries being incorrectly named, leading to missing query edges.

pospi's avatar
pospi committed
10
11
12
13
14
## 0.9.0-alpha.7

- **Breaking:** removed `deleteEconomicEvent` and `deleteEconomicResource` as there are bookkeeping repercussions for deleting them, even in simple cases.
- Fixed schema files for `ResourceSpecification` & `ProcessSpecification` history queries being incorrectly named, leading to missing query edges.

pospi's avatar
pospi committed
15
## 0.9.0-alpha.6
pospi's avatar
pospi committed
16
17

- Added all currently defined [inverse query relationships](https://www.valueflo.ws/specification/inverses/)
pospi's avatar
pospi committed
18
- **Breaking:** changed query edges of all `Process` flow relationships (`Commitment`, `Intent` and `EconomicEvent`) to parameterise filters consistently with other edges. Previous `action` parameter is now present as a property of the standard `filter` argument.
pospi's avatar
pospi committed
19
- **Breaking:** added pagination to all `Agent` relationship query edges
pospi's avatar
pospi committed
20
21
22
23
24
- **Breaking:** updated track & trace API queries:
	- `EconomicEvent` now has `previous` & `next`, which may be a `Process` or `EconomicResource`
	- `EconomicResource` now has `previous` & `next`, which may only return `EconomicEvent`s
	- Expanded `track` & `trace` queries on `EconomicEvent` & `EconomicResource` to return any of `Process`, `EconomicResource` or `EconomicEvent`
	- Renamed `track` & `trace` on `Process` to `previous` and `next` for compatibility with other records. These edges still only return `EconomicEvent` records.
pospi's avatar
pospi committed
25
26
27
28
29
- Added `Agent` filter params to agent query APIs, allowing filter by agent classification
- Added `Process`, `Commitment`, `Intent`, `Claim` & `Proposal` filter params to toplevel query APIs
- Added `offers` & `requests` convenience queries for easier `Proposal` retrieval
- Added convenience query edges `Proposal.primaryIntents` and `Proposal.reciprocalIntents`
- `Plan.processes`, `Scenario.plans` & `Scenario.refinements` are no longer paginated
pospi's avatar
pospi committed
30
- Added missing `Commitment.stage` field
pospi's avatar
pospi committed
31
32
- Fixed `Claim.provider` & `Claim.receiver` missing
- Fixed `inScopeOf` field being included in `Claim`, `Process` and `Scenario` when "agent" module is not defined
33
- Fixed `ScenarioDefinitionEdge` referencing `Satisfaction` instead of `ScenarioDefinition`
pospi's avatar
pospi committed
34
- **Breaking:** fixed `EconomicEvent.appreciationWith` incorrectly named as `EconomicEvent.appreciatedBy`
35
36
37
38
39
40
41

## 0.9.0-alpha.5

- Added `plannedWithin` to `Commitment`, for referencing `Plan`s that a `Commitment` is independently a part of (separate to any `Process`)

## 0.9.0-alpha.4

42
- **Breaking:** refactored schema modules to decouple into discrete types wherever possible. As a result, integrators will need to update any VF module ID whitelists. Only strongly-coupled record types remain declared in shared module files.
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
    - `observation.gql` no longer contains `Process` or `ProductBatch`, which are now in their own modules of the same names.
    - `planning.gql` no longer exists; see now the separate modules `commitment`, `intent`, `fulfillment` & `satisfaction`.
    - `knowledge.gql` no longer exists, and has been refactored into `action`, `process_specification` and `resource_specification`.

## 0.9.0-alpha.3

- Record metadata fields renamed for clarity: `currentRevision` is now `retrievedRevision`
- Revision author now references an REA `Agent`, rather than a scalar ID to be manually associated by applications
- Make return values for all inter-type edges non-mandatory so that errors are not thrown if implementations choose to omit null values
- Cleanup of `Agent` / `Proposal` query edges for pagination
- Downgrades/fixes in mock server due to GraphQL / Express compatibility issues

## 0.9.0-alpha.2

- Fix deletion mutations returning nullable values
- Fix `AgentRelationship.inScopeOf` not being assignable in create or update mutations

## 0.9.0-alpha.1

pospi's avatar
pospi committed
62
- **Breaking:** switched to a revision-based API for referencing updates & deletions, for compatibility with eventually-consistent distributed systems
63
64
    - Added a new optional `history` module, which implementations featuring human-facing conflict resolution capabilities may implement. These additional query edges, metadata and response types provide a minimal-footprint API which can be used to resolve conflicts between divergent branches of the same record. See the 'bridging' schemas beginning with `history.*` as a reference.
    - `revisionId` is now a mandatory field in all updateable record types. For systems which do not implement `history`, it is fine to return `revisionId` with the same value as `id` and to use this identifier for updates.
pospi's avatar
pospi committed
65
- **Breaking:** updated all record query edges and relationships to conform to the [Relay Connections specification](https://relay.dev/graphql/connections.htm) in order to efficiently manage large result sets by way of pagination.
66
67
68
    - Cursors for managing pagination are now required metadata to be provided with list-based result sets. Other optional page metadata may also be returned to assist with the user interface if the implementation can support it (see `pagination.gql`).
    - If the `filtering` module is enabled, query `filter` parameters are added to the record relationships. The parameter names and logic for these queries are defined in the `bridging/*.filtering.gql` schema files, and are particular to the type of data they relate.
    - Systems may also choose to implement the `ordering` module, which augments record relationships with an `orderBy` parameter. See the `bridging/*.ordering.gql` schema files.
pospi's avatar
pospi committed
69

70
## 0.8.5
pospi's avatar
pospi committed
71
72

- Fixed errata in fields being required or not:
73
74
75
76
77
    - `Claim.triggeredBy` is now required when creating
    - `Plan.name` is now required
    - `ScenarioDefinition.name` is now correctly required when creating, but not when updating
    - `Scenario.definedAs` is no longer required
    - Fixed `Intent` mutation parameters not being marked as required
pospi's avatar
pospi committed
78
- **Breaking:** added a new field `EconomicEvent.toLocation` for managing resource location updates. `EconomicResource.currentLocation` is no longer updateable directly.
pospi's avatar
pospi committed
79
80
81
- Fix `EconomicEvent.inScopeOf` being updateable when it should not be
- Fix `RecipeFlow.recipeFlowResource` not being required when it should be
- Fix `RecipeProcess.processConformsTo` being required when it should not be
pospi's avatar
pospi committed
82
- Added `Commitment.plannedWithin`
pospi's avatar
pospi committed
83
84
- Fixed IDs not being mandatory in all direct-retrieval API methods
- Added a mock GraphQLClient for direct use in UI code, to complement the mock GraphQLServer
pospi's avatar
pospi committed
85
- Fixed some geolocation fields being present in the generated schema when the `geolocation` module is not active
pospi's avatar
pospi committed
86
- Added a new edge `Plan.nonProcessCommitments` as an inverse mapping of `Commitment.plannedWithin`
pospi's avatar
pospi committed
87
88
- Switched to [PNPM](http://pnpm.js.org/) for package management for better cross-monorepo support
- **Reflect correct Apache-2.0 licensing** in NPM metadata (was: MIT)
pospi's avatar
pospi committed
89
- Updated GraphQL toolchain in dependencies: `@graphql-tools` v6-v8; `@graphql-codegen` v1-v2; `@apollo.client` v2-v3.
pospi's avatar
pospi committed
90

91
92
93
94
95
## 0.8.4

- Fixed casing of `AgreementResponse.agreement` to remove uppercase `A`
- GraphQL peer dependency minimum compatible version downgraded to `14.5.8`. (Incompatibilities were between GraphQL & GraphiQL, not this lib.)

pospi's avatar
pospi committed
96
97
98
99
## 0.8.3

- Added `classifiedAs` to `Organization`
- Added `onHandEffect` to `Action`
pospi's avatar
pospi committed
100
- Added `defaultUnitOfResource` to `ResourceSpecification`
pospi's avatar
pospi committed
101
- Added `RecipeExchange` to the *recipe* module
pospi's avatar
pospi committed
102
103
104
- Further modularised schemas to allow economic modules to be used without `Agent` functionality
- Updated GraphQL modules to most recent version (`15.x` series) and configured `graphql` as a peerDependency to allow broader compatibility

105
106
107
108
## 0.8.2

- Allow overriding options for both `buildASTSchema` and `mergeTypeDefs` 

pospi's avatar
pospi committed
109
110
111
112
## 0.8.1

- Allow overriding options to `mergeTypeDefs` in order to deal with looser validation in extension schemas

pospi's avatar
pospi committed
113
114
115
116
117
118
119
## 0.8.0

- Added an additional argument to `buildSchema` to allow passing extension schemas as SDL strings in order to extend core VF with custom domain-specific additions easily
- **Breaking:** removed loose `AnyType` custom scalar and restricted `inScopeOf` fields to only allow `Person | Organization` as valid values. Note that implementations may extend the `AccountingScope` union type if they wish to allow other types of record scoping (eg. groups without collective agency, geographical locations).
- **Breaking:** removed `all` prefixes from toplevel record listing endpoints for sensible autocomplete, and made search endpoint query prefixes into suffixes
- **Breaking:** fixed deletion methods taking `String` when they should receive `ID`

pospi's avatar
pospi committed
120
121
122
123
124
## 0.7.1

- Fix generated TypeScript / Flow types missing "bridging" fields due to misconfiguration of `graphql-codegen`
- Fix `EconomicEvent` appreciation edges linking directly to other events instead of via `Appreciation`

125
126
127
128
129
130
## 0.7.0

- Added descriptions to all `input` fields, to make interacting with the API more self-documenting
- Added pagination parameters to all list queries
- Removed many accounting fields from `EconomicEventUpdateParams` that should not have been present
- Added various fields missed in the original conversion:
131
132
    - `Agent.primaryLocation`
    - `Scenario.definedAs`
133
- Fixed missing input fields:
134
135
136
137
138
139
    - `basedOn` & `classifiedAs` in `ProcessUpdateParams`
    - `refinementOf` in `Plan` create / update
    - `resourceConformsTo` in `RecipeResource` create / update
    - `processClassifiedAs` in `RecipeProcess` create / update
    - `refinementOf` in `Scenario` create / update
    - `ScenarioDefinitionUpdateParams.name`
pospi's avatar
pospi committed
140
- Add missing mutations & queries for `Claim`, `Scenario`, `ScenarioDefinition` & `SpatialThing`
pospi's avatar
pospi committed
141
- Removed `pass` & `fail` actions from the set of core verbs (see [ValueFlows/#610](https://github.com/valueflows/valueflows/issues/610))
142

pospi's avatar
pospi committed
143
144
145
146
147
148
149
150
## 0.6.1

- Finished some rough edges on modularisation such that you no longer need to explicitly include `query` and `mutation` in the list of schemas to `buildSchema()`.

## 0.6.0

- **Breaking:** significant changes to the internal structure of the module to facilitate modular composition of schemas. Now exports a `buildSchema` function rather than pre-initialised `schema` object. Use `printSchema` on the output of `buildSchema()` for tools which require the input as an SDL schema string, rather than a GraphQLSchema object.

pospi's avatar
pospi committed
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
## 0.5.0

- **Breaking:** renames the `transfer-complete` action to `transfer`, as the former was confusing for some users
- Adds missed mutations for `Proposal` and related records

## 0.4.3

- Adds `defaultUnitOfEffort` to `ResourceSpecification` as a stop-gap for unit inference in VF0.4 release (see [#64](https://github.com/valueflows/vf-graphql/issues/64))

## 0.4.2

- Finalise fields for `EconmicResource` & `EconomicEvent` creation & update logic

## 0.4.1

- Adds missed mutations for `Unit` & `ProcessSpecification`

## 0.4.0

**Updated for ValueFlows 0.4 release.**

- Changed from [QUDT](http://www.qudt.org/pages/QUDToverviewPage.html) to [OM](https://github.com/HajoRijgersberg/OM) ontology for measurements
- New action metadata
- Add `EconomicResource` stage & state attributes
- Remove `before` & `after` time fields on `EconomicEvent` & `Process`

## 0.3.0

Initial release. Rough around the edges, missing many mutations & queries, but the core schema is stable.