This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
# Build (from yubb-saas-master directory)
mvn clean package -Dmaven.test.skip=true
# Run a single test
mvn test -Dtest=TestClassName -pl yubb-module
# Run (from yubb-saas-master/yubb-admin/target)
java -jar -Xms256m -Xmx1024m yubb-admin.jar
# Linux startup script (from yubb-saas-master)
./yb.sh {start|stop|restart|status}
application-{dev,test,prod}.yml (activated by Maven profile -Pdev, -Ptest, -Pprod)com.yubb.YuBbApplicationhttp://host/swagger-ui.htmlTenancy is implemented via a tenant_id column. The tenantFilter in application.yml lists tables that must be filtered. YubbTenantLineHandler (MyBatis-plus interceptor) automatically injects tenant condition into queries. Two realms exist: UserRealm (saas per-tenant) and PlatformUserRealm (platform-level).
domain/ — Entity classesdomain/dto/ — Data transfer objectsdomain/vo/ — View objectsmapper/ — MyBatis-plus mappersservice/ + service/impl/ — Service interface + implementationehcache-shiro.xml)SysLoginService) and permission (PermissionService)KickoutSessionFilter prevents duplicate sessionsPlatformLogoutFilter / LogoutFilter handle logoutxss.enabled config (currently false — IMPROVEMENTS.md documents this as P1 issue)Controllers live under com.yubb.web.controller with sub-packages: platform/ (tenant-aware), system/ (saas), monitor/, tool/, demo/.
SQL migration files are in sql/ directory.