Skip to content

Feat api#98

Merged
dominikletica merged 37 commits into
dev-latestfrom
feat-api
Jun 11, 2026
Merged

Feat api#98
dominikletica merged 37 commits into
dev-latestfrom
feat-api

Conversation

@dominikletica

@dominikletica dominikletica commented Jun 7, 2026

Copy link
Copy Markdown
Member

Summary

Added the feat-api foundation and first functional API slices for Studio: stateless /api/v1 API-key authentication, public-read opt-ins, read-only/read-write method gating, centralized endpoint definition/handler registration, dynamic OpenAPI 3.2 generation, root/navigation resources, admin/user/package/content/schema baseline endpoints, settings/user/admin mutations where the domain layer already supports them, deterministic API availability/error handling, CORS settings, trace headers, JSON content-type enforcement, standardized page/limit list contracts, and an admin endpoint permissions matrix.

The branch keeps API execution in the owning user context so existing domain ACL logic remains authoritative, and prepares package/domain endpoint registration without exposing arbitrary routes or Doctrine/DBAL access through the API layer.

Testing

  • bin/phpunit: OK (1121 tests, 7768 assertions)
  • Other (describe):
    • Focused PHPUnit suites passed across the API slices, including API foundation, endpoint registry/navigation, OpenAPI generation, API security subscribers, CORS, content type enforcement, settings, packages, users, admin operations, content items/schemas, package contribution guard, live operation resources, and API list normalization.
    • php bin/console lint:container: passed.
    • bin/lint: passed.
    • git diff --check: passed.

Documentation

  • Updated project readme (README.md)
  • Updated feature drafts (dev/draft/*.md)
  • Updated class map (dev/CLASSMAP.md)
  • Updated worklog (dev/WORKLOG.md)
  • Updated dev/user manuals (dev/manual/*.md / docs/*.md)

Additional Checks

Review Notes

The API branch is intended as a feature-complete foundation for the current domain state, not as the final content/editor API contract. Content write endpoints are deliberately stable 501 stubs until the Editor/Content model exposes final command services.

Known non-blocking follow-ups are documented: package API handlers should get a controlled safe handler/context model before public package API release, and several larger API handlers should be split by read/command responsibility when their next real behavior is added.

@dominikletica dominikletica self-assigned this Jun 7, 2026
@dominikletica dominikletica added the enhancement New feature or request label Jun 7, 2026

@dominikletica dominikletica left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Foundation OK (1055 tests, 7250 assertions), Audit pending

@dominikletica dominikletica left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pass.
Test-Suite OK (1121 tests, 7768 assertions)
Ready for review.

@dominikletica
dominikletica marked this pull request as ready for review June 7, 2026 19:10
@dominikletica dominikletica linked an issue Jun 7, 2026 that may be closed by this pull request

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c54c2fc1ca

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/Content/Api/ContentApiItemReadModel.php
Comment thread src/Security/Api/UserApiHandler.php Outdated
Comment thread src/Security/Api/UserApiEndpointProvider.php Outdated
Comment thread src/Core/Package/Api/PackageApiHandler.php

@dominikletica dominikletica left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK (1124 tests, 7804 assertions)

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 3c617a6596

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/Security/Api/UserGroupMembershipApiHandler.php Outdated

@dominikletica dominikletica left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Resolved review findings

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 820c381bee

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/Core/Package/Api/PackageApiReadModel.php Outdated
Comment thread src/Security/Api/UserApiHandler.php
Comment thread src/Content/Api/ContentApiItemHandler.php Outdated
Comment thread src/Security/Api/UserGroupApiHandler.php

@dominikletica dominikletica left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed review findings.
php bin/phpunit: OK, 1130 tests, 7819 assertions

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 3fb9dbed25

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/Api/Security/ApiEndpointAccessSubscriber.php Outdated
Comment thread src/Api/Security/ApiEndpointPermissionSubscriber.php Outdated
Comment thread src/Core/Package/PackageApiContributionGuard.php
Comment thread src/Content/Api/ContentApiItemHandler.php Outdated

@dominikletica dominikletica left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed review findings.
bin/phpunit: OK, 1138 Tests, 7851 assertions

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e9b23bef06

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/Content/Api/ContentApiItemReadModel.php Outdated
Comment thread src/Content/Api/ContentApiItemListQuery.php Outdated
Comment thread src/Api/Security/ApiKeyAuthenticator.php Outdated

@dominikletica dominikletica left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed review findings.
php bin/phpunit: OK, 1143 tests, 7870 assertions

@dominikletica
dominikletica merged commit 8c0a5e6 into dev-latest Jun 11, 2026
4 checks passed
@dominikletica
dominikletica deleted the feat-api branch June 11, 2026 09:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat-api

1 participant