Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add compatiblewith and modelversion to domain specific specs (new PR) #244

Conversation

Fannon
Copy link
Contributor

@Fannon Fannon commented Jan 23, 2025

Sorry, I ran into git issues and it was easier to make a new branch / PR.

Closes #225

Simon Heimler and others added 13 commits January 23, 2025 16:53
Signed-off-by: Simon Heimler <[email protected]>
Signed-off-by: Simon Heimler <[email protected]>
Signed-off-by: Simon Heimler <[email protected]>
Signed-off-by: Simon Heimler <[email protected]>
Signed-off-by: Simon Heimler <[email protected]>
Signed-off-by: Simon Heimler <[email protected]>
Signed-off-by: Simon Heimler <[email protected]>
Signed-off-by: Simon Heimler <[email protected]>
Signed-off-by: Simon Heimler <[email protected]>
Signed-off-by: Simon Heimler <[email protected]>
- clarify errors for bad paths and methods
- Remove "origin"
- add `/capabilities` API and "capabilities" Registry attr
  - requires `?inline=capabilities` reads, just presence on writes(like model)
  - remove "schemas" from model, moved into "capabilities"
- add 'xid'. Change xref to start with /
- add "labels" to model schema : Registry, Groups and Resources
  - add a "compatiblewith" well-known label
- add support for `relation` type of URLs
- add text about how to deal with sending incomplete results
  - error unless you can be tricky via something like pagination spec
- allow ?export, ?inline, ?filter on all APIs to control responses
- explain that "generated" errors != must send back to client - e.g. security
- use highest alphabetical versionid (case insensitive) when all versions have
  the same "createdat" value. Remove requirement for ?setdefaultversionid
- `DELETE RESOURCES` must put `epoch` under `meta` if present
- Primer: explain why GROUPS and RESOURCES have attribute name restrictions
- Primer: encourage domain/company prefix/suffixed on Groups (and Resources)
- Add `capability.enforcecompatibility` so servers can indicate whether they'll
  enforce the `compatibility` attribute on the owning Resource
- Clarify rules for updating Resources when dealing with 'xref'.
  - presence of any attribute on a 'write' to an xref'd resource is an error
  - xref->normal:
    - epoch = max(oldEpoch, targetResourceEpoch)+1
	- createdat = oldCreatedAt
	- modifiedat = now
- Updating a Version's `createdat` CAN make it the latest/default
- add support for "shortself"
- add "@" as a valid char for IDs

Fixes xregistry#199
Fixes xregistry#216
Fixes xregistry#217
Fixes xregistry#213
Fixes xregistry#210
Fixes xregistry#211
Fixes xregistry#209
Fixes xregistry#187
Fixes xregistry#200
Fixes xregistry#202
Fixes xregistry#205
Fixes xregistry#207
Fixes xregistry#214
Fixes xregistry#203
Fixes xregistry#204
Fixes xregistry#206
Fixes xregistry#212

Signed-off-by: Doug Davis <[email protected]>
Signed-off-by: Simon Heimler <[email protected]>
- typo and wording clarifications in main spec
- remove duplicate "compatibility" in schema, it's part of core attributes now
- replaced `?export` with `?compact` and just removes the dup info. Any
  inlining would need to be requested by the client
- defined `/export` to be `/?compact&inline=*,model,capabilities`
- remove ?nested
- tweaks valid chars for ID: `[a-zA-Z0-9_][a-zA-Z0-9_.\-~@]{0,127}`
- IDs must be no longer than 128 chars
- s/$structure/$details/g

Fixes: xregistry#234
Fixes: xregistry#233
Fixes: xregistry#232
Fixes: xregistry#220
Fixes: xregistry#229
Fixes: xregistry#224
Fixes: xregistry#237

Signed-off-by: Doug Davis <[email protected]>
Signed-off-by: Simon Heimler <[email protected]>
Signed-off-by: Simon Heimler <[email protected]>
@Fannon Fannon closed this Jan 23, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants