RFC: Use WordPress as your app's data store
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 25/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- graphql, json, typescript, wordpress
Hướng nghiên cứu
This is an RFC describing a multi-stage data store; start by reading the linked storage and REST work in issue #2674. The RFC lays out follow-on work for collection registration, WPGraphQL support, and a JS client, but does not identify implementation files or tests. Before taking it on, check the project discussion for a decided scope; done would need to be defined for one specific stage.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Idea
Faustabase (working name) is a faster way to give your app a database, using the WordPress site you already have. Turn on FaustWP's document store, save JSON from your app, and never silently lose a write.
flowchart TD
App["Your app"] -->|REST or GraphQL| WP["FaustWP<br/>checks version"]
WP --> T[("wp_faust_<br/>documents")]
Admin["wp-admin<br/>Tools screen"] -.->|read-only| T
Why
- You don't need a second database like Firebase or Supabase, or a custom plugin.
- Normal WordPress and WPGraphQL saves let the last write win. Faustabase rejects a stale write with a 409.
- Site owners can see the data in wp-admin, and WordPress users and roles control access.
Decided
-
Documents live in one dedicated table, grouped into collections like Firestore. History can be added later without migrating data.
-
REST and WPGraphQL can both get, update, delete, list and add documents, with the same version check.
-
Collections are admin-only until you register them. Registering a collection sets its access mode and a JSON Schema that WordPress validates, which is how a form or waitlist accepts public writes:
register_faust_collection( 'waitlist', array( 'access' => 'public-create', // or 'admin' (default) or 'owner' 'schema' => array( 'type' => 'object', 'required' => array( 'email' ) ), ) ); -
A JS client for app servers would look roughly like this:
const ref = store.collection('preferences').doc('user-42'); await ref.update((d) => ({ ...d, theme: 'dark' })); // retries on conflict
Plan
- Storage and REST: #2674.
register_faust_collectionwith access modes and schemas.- WPGraphQL support.
- The JS client.
Realtime, complex queries and high write volume are out of scope.
- Ngôn ngữ chính
- TypeScript
- Star
- 1.6k
- Fork
- 157
- Merge trung bình
- 1 ngày 4 giờ
- Pull request đã merge (30 ngày)
- 133
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của wpengine/faustjs
-
Apollo Client 4 SPIKEĐang mở[Area] Core dependencies
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
wpengine/faustjs#2192 · 5 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Area] Core [Area] WordPress Plugin [Type] Bug Needs Reproduction
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
wpengine/faustjs#1933 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Multiple Queries support should support multiple of the same query with different variables/optionsĐang mở[Area] Core [Type] Enhancement
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
wpengine/faustjs#1742 · 7 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Area] Core [Type] Bug Needs Reproduction Needs Triage
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 35/100
wpengine/faustjs#1531 · 3 bình luận · 3 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của wpengine/faustjs
Issue tương tự
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 68/100
cursor/community-plugins#465 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
vetro-protocol/vetro-monorepo#978 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
ai-generated bug category:security effort:s priority:p3
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 67/100
LanternOps/breeze#9697 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
maniator/verticopolis#1303 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 73/100
components-web-app/docs#297 ·