Commit Graph

983 Commits

Author SHA1 Message Date
Haitao Pan
ebbe29afd1 refactor: separate blog content from code
### Changes:
1. **Create Blog Content Directory**
   - Created src/content/blog/ directory for content management
   - Added README.md with usage instructions
   - Added 3 sample blog posts

2. **Update Content Retrieval Function**
   - Modified getHomepagePosts() in homepage.ts
   - Now reads from src/content/blog/ instead of CMS config
   - Content and style are now separated

3. **Content Management**
   - Style: Keep existing components and styles
   - Content: Manage via markdown files in src/content/blog/
   - Metadata: YAML front matter (title, author, date, tags, excerpt)
   - Sorting: Sort by date (newest first)

### Benefits:
- Content separated from code
- Easy for non-technical users to add content
- Version control friendly
- Unified metadata management

To add new blog posts:
1. Create .md file in src/content/blog/
2. Use standard front matter format
3. Use kebab-case for filenames

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2025-11-11 12:58:49 +08:00
Haitao Pan
0ee41e774f refactor: remove ArticleFeed, keep only CommunityFeed
- Remove ArticleFeed and ArticleFeedClient components
- Update template types to remove ArticleFeed
- Update default template configuration
- Update app/page.tsx to remove ArticleFeed
- Keep only CommunityFeed for blog updates (latest 3 posts)
- All blog content now uses CommunityFeed

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2025-11-11 12:55:23 +08:00
Haitao Pan
ec496acb14 feat: add CommunityFeed to template configuration
- Update HomePageTemplateSlots type to include CommunityFeed
- Add CommunityFeed slot to default layout config
- CMS content now displays CommunityFeed between ArticleFeed and Sidebar

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2025-11-11 12:53:05 +08:00
Haitao Pan
1d337c41ee fix: restructure CommunityFeed to separate Server and Client logic
- CommunityFeed now Client Component (accepts posts via props)
- Created CommunityFeedServer wrapper to fetch posts on server
- Fixes Module not found: Can't resolve 'fs' error
- HomepageLanding no longer imports CommunityFeed
- app/page.tsx passes CommunityFeedServer to template

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2025-11-11 12:51:12 +08:00
Haitao Pan
dea4f0b72c fix: dynamic import CommunityFeed in HomepageLanding
- Use Next.js dynamic() to import CommunityFeed as Server Component
- Fixes Module not found: Can't resolve 'fs' error
- Client Component can now safely import Server Component

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2025-11-11 12:48:21 +08:00
Haitao Pan
54baf303b0 feat: implement blog system with homepage integration
### Changes:
1. **Remove Contact Panel from ProductMatrix**
   - Removed ContactPanel from ProductMatrix component
   - Simplified layout to center content with max-width

2. **Update Community Feed Section**
   - Changed title to "产品与社区快讯" (Product & Community Pulse)
   - Updated CTA text to "浏览全部更新" (View all updates)
   - All links now point to /blog

3. **Create /blog Route**
   - Created new blog page at src/app/blog/page.tsx
   - Displays all blog posts with metadata
   - Shows author, date, tags, and excerpts

4. **Dynamic Blog Feed**
   - Community feed now displays latest 3 blog posts
   - Posts are fetched from CMS using getHomepagePosts()
   - Shows relative time (e.g., "2 hours ago")
   - Displays author information
   - Graceful handling of empty state

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2025-11-11 12:44:59 +08:00
Haitao Pan
47c4a841c6 refactor: use path alias for products registry import
- Change from relative path to path alias
- import from '@modules/products/registry'
- Consistent with project alias configuration

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2025-11-11 12:37:31 +08:00
Haitao Pan
6001b34656 fix: correct import path for products registry (v2)
- Fix import path in src/app/[slug]/page.tsx
- Changed from '../../../modules/products/registry' to '../../modules/products/registry'
- Correct relative path calculation

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2025-11-11 12:36:30 +08:00
Haitao Pan
b2732bcb99 fix: correct import path for products registry module
- Fix import path in src/app/[slug]/page.tsx
- Changed from '../../../../modules/products/registry' to '../../../modules/products/registry'
- Resolves Module not found error

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2025-11-11 12:34:05 +08:00
Haitao Pan
18ad20fbdb refactor(config): modernize to ES Module format
- Convert tailwind.config.js and postcss.config.js to ES Module syntax
- Remove duplicate .mjs files and temporary config files
- Update CONFIG_SYSTEM_SUMMARY.md with migration guide
- All configs now use import/export consistently

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2025-11-11 12:26:04 +08:00
Haitao Pan
ee70e79f76 fix(dashboard): resolve all module import errors and fix CSS loading
## Module Import Fixes:
- Fix cloud_iac JSON import paths: '../../../../public/_build/cloud_iac_index.json' → '../../../../../public/_build/cloud_iac_index.json'
- Fix docs JSON import paths: '../../public/dl-index/*' and '../../public/_build/*' → '../../../public/*'
- Fix ThemePreferenceCard theme import: '../../../../theme' → '../routes/theme'
- Fix products registry import: '@src/products/registry' → '../../../../modules/products/registry'

## CSS Loading Fix:
- Update tailwind.config.js content paths to include './src/**/*.{js,ts,jsx,tsx,mdx}'
- Ensures Tailwind CSS scans all src/ directory files for class names

Resolves "Module not found" errors and ensures CSS styles are correctly loaded during build.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-11 12:04:29 +08:00
Haitao Pan
aa6e0fe1b2 fix(dashboard): resolve markdown import path in homepage.ts
- Fix markdown import path from '../../lib/markdown' to '../../../lib/markdown'
- Correct relative path from src/lib/cms/content/homepage.ts to src/lib/markdown.ts
- Resolves "Module not found" error during Next.js build

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-11 11:59:29 +08:00
Haitao Pan
c4e4a80b4f fix(dashboard): resolve CMS content source paths in config
- Fix homepage and docs content source root paths from 'cms/content/*' to 'src/lib/cms/content/*'
- Paths are relative to process.cwd() and need the full path from project root
- Resolves ENOENT errors when reading markdown directories

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-11 11:59:19 +08:00
Haitao Pan
cc1f9e3ba2 fix(dashboard): resolve import path errors in extensionRuntime.ts
- Fix AppShellBypass import path from '../../../lib/appShellBypass' to '../appShellBypass'
- Correct relative path from src/lib/cms/extensionRuntime.ts to src/lib/appShellBypass.tsx
- Resolves "Module not found" error during Next.js build

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-11 11:51:04 +08:00
Haitao Pan
2ecc03eafa fix(dashboard): resolve featureToggles import path in homepage.ts
- Fix import path from '../../lib/featureToggles' to '../../../lib/featureToggles'
- Correct relative path from src/lib/cms/content/homepage.ts to src/lib/featureToggles.ts
- Resolves "Module not found" error during Next.js build

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-11 11:23:09 +08:00
shenlan
d9a1e2b7ac refactor(dashboard): adopt src app router layout (#667) 2025-11-11 10:45:37 +08:00
Haitao Pan
44f59293cb feat(account): add database management targets to Makefile
- Add create-db-user: create database user and grant privileges
- Add db-reset: reset entire PostgreSQL cluster (dangerous operation)
- Update help text to document new database management commands

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-10 23:12:07 +08:00
shenlan
1b86870990 Merge pull request #666 from Cloud-Neutral/codex/simplify-dashboard-tab-presentation 2025-11-10 07:59:20 +08:00
shenlan
848080bd6e Simplify open source hero copy 2025-11-10 07:53:00 +08:00
shenlan
7c1f8cca57 Refine homepage hero to minimal Cloud-Neutral layout (#665)
* Refine homepage hero to minimal Cloud-Neutral layout

* Simplify homepage hero layout
2025-11-09 23:37:25 +08:00
shenlan
6fc220d21f Revert "Remove marketing-focused components from dashboards (#663)" (#664)
This reverts commit bbe71df9d2.
2025-11-09 23:27:47 +08:00
shenlan
bbe71df9d2 Remove marketing-focused components from dashboards (#663) 2025-11-09 23:24:00 +08:00
shenlan
89b45d13a9 Remove newsletter sidebar component (#662) 2025-11-09 22:40:59 +08:00
shenlan
65beed5721 refine homepage ecosystem narrative (#661) 2025-11-09 22:38:14 +08:00
shenlan
a79ed64bc3 Fix tenant mail route slug for Next.js build (#660) 2025-11-09 20:54:05 +08:00
shenlan
8bedfb1a8a Fix tenant mail route segment name (#659) 2025-11-09 19:46:40 +08:00
shenlan
88ea7e8920 Merge pull request #658 from Cloud-Neutral/codex/fix-yarn-next-build-error 2025-11-09 18:11:56 +08:00
shenlan
3d057c52dd Disable typed routes to avoid stale validator imports 2025-11-09 18:10:55 +08:00
shenlan
719e164ee3 Keep navbar dropdown open on focus (#657) 2025-11-09 17:53:15 +08:00
shenlan
4ce16713ab Fix navbar dropdown click handling (#656) 2025-11-09 17:34:44 +08:00
shenlan
8b7bb7df1f feat(dashboard): add open source dropdown to navbar (#655) 2025-11-09 17:21:27 +08:00
shenlan
e0aa28ccc1 Fix marketing product routes for Next.js params (#653) 2025-11-09 16:51:47 +08:00
shenlan
3777ba22ca Ensure html2canvas loads only in browser (#652) 2025-11-09 16:34:54 +08:00
shenlan
9aec855a22 fix: lazily load html2canvas in poster export (#651) 2025-11-09 16:15:11 +08:00
shenlan
2d11e439b6 Align dynamic slug names for tenant and product routes (#650) 2025-11-09 15:59:20 +08:00
shenlan
b06cf2de3e feat(dashboard): add marketing product pages (#649) 2025-11-09 15:44:38 +08:00
shenlan
0da7de8cb7 Rename CloudNative Suite to Cloud-Neutral in dashboards (#648) 2025-11-09 10:06:34 +08:00
Haitao Pan
2263707d13 fix(dashboard): resolve @types/react version conflict
- Downgrade @types/react from 19.1.8 → 18.3.26
- Align with @types/react-dom and @testing-library/react
- No build errors, all dependencies compatible

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2025-11-06 11:49:09 +08:00
Haitao Pan
4976ca1efd fix(dashboard): eliminate middleware deprecation warning
- Rename middleware.ts → proxy.ts
- Update to use default proxy export (Next.js 16)

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2025-11-06 11:40:15 +08:00
Haitao Pan
f3d0a7f931 fix(dashboard): resolve npm run build errors
- Fix module path in prebuild script (../../scripts → ../scripts)
- Update API routes to use Promise-based params for Next.js 16
- Install @types/sanitize-html and @types/js-yaml
- Fix component prop naming (loading → isLoading, saving → isSaving, etc.)
- Update VLESS config type definition with missing 'id' property
- Fix TypeScript type conflicts and export declarations

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2025-11-06 11:07:30 +08:00
Haitao Pan
5f82e984b4 fix: update cookies() API for Next.js 16 compatibility
- Updated 6 API route handlers to use await cookies()
- Fixed: auth/session, auth/login, auth/mfa/* endpoints
- Resolves "cookies().get is not a function" errors

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-06 10:35:56 +08:00
Haitao Pan
288a049141 feat(dashboard): add REGION env variable support
- Enable REGION environment variable to control regional config overrides
- Prioritize RUNTIME_ENV and REGION over file-based configuration
- Supports: RUNTIME_ENV=prod|sit and REGION=cn|global|default
- Loads from dashboard/config/runtime-service-config.{env}.yaml
- Fixes configuration loading with Turbopack compatibility

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-06 10:28:35 +08:00
Haitao Pan
b4696470f6 feat(dashboard): upgrade Next.js 14 → 16 with Turbopack support
- Fix @theme module resolution for Turbopack
- Add external image domain config (dl.svc.plus)
- Resolve YAML file module type errors
- Support RUNTIME_ENV env var for config selection
- Optimize next.config.mjs for Next.js 16 compatibility

Closes #upgrade-next16
2025-11-06 10:21:19 +08:00
Haitao Pan
0b3fab7d28 cleanup(auth): remove test/docs files from internal/auth
- Deleted non-essential files from rag-server/account internal/auth:
  - Removed: test files, docs (README, IMPLEMENTATION), cache/client modules
  - Kept: core JWT auth middleware and token_service only
- Simplified to JWT service-to-service authentication
- Claims retain UserID/Email/Roles business info
2025-11-05 22:58:39 +08:00
Haitao Pan
a1e4cc9146 remove: remove internal/auth/mfa_service.go
• Deleted unused mfa_service.go file
• Fixed import in api/api.go for auth package
• Build verified and working

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-05 22:25:15 +08:00
Haitao Pan
3a4f7105c7 update TOKEN_AUTH_SUMMARY.md 2025-11-05 22:16:18 +08:00
Haitao Pan
96e4c8d719 feat(auth): implement rag-server remote auth middleware
Implement complete authentication middleware for rag-server:
- Remote token verification via accounts-service
- 60s TTL cache with background GC
- Gin middleware integration
- Role-based access control
- Zero-trust architecture (no private keys)
- Health check endpoint

Files:
- internal/auth/client.go (350 lines)
- internal/auth/middleware_verify.go (280 lines)
- internal/auth/cache.go (180 lines)
- internal/auth/example_test.go (150 lines)
- internal/auth/README.md (550 lines)
- cmd/xcontrol-server/main.go (updated)
- config/config.go (added AuthCfg)
- config/server.yaml (removed secrets)

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2025-11-05 21:01:20 +08:00
Haitao Pan
8edeb75391 feat(auth): implement dual-layer token authentication with config support
- Add auth.enable configuration field (default: true)
- Add TokenService initialization in account service
- Implement token exchange endpoint (/api/auth/token/exchange)
- Implement token refresh endpoint (/api/auth/token/refresh)
- Protect routes with JWT authentication middleware
- Update configuration structures for all services
- Support accessSecret with configurable expiry times
- Update token management script to handle all token types
- Validate auth configuration consistency across services
2025-11-05 20:11:23 +08:00
Haitao Pan
c1a26852ae feat(test): add test suite for services (build, dry-run, local-test) 2025-11-05 19:42:45 +08:00
Haitao Pan
7ef1f960fb feat(auth): implement token authentication system across services
- Add token service and MFA service to account service
- Implement auth middleware for request validation
- Add token-based auth to dashboard and RAG server
- Update configuration files for auth settings
2025-11-05 19:28:23 +08:00