mirror of
https://github.com/paperclipai/paperclip.git
synced 2026-10-27 11:20:42 +01:00
feat: add private project access
Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
1 parent
df05b1a968
commit
c761282d76
29 files changed
+1197
-29
No files matched your search
@@ -739,11 +739,14 @@ export type {
|
||||
AdapterEnvironmentTestResult,
|
||||
AssetImage,
|
||||
Project,
|
||||
ProjectAccessMember,
|
||||
ProjectAccessSubjectType,
|
||||
ProjectBudgetSummary,
|
||||
ProjectCodebase,
|
||||
ProjectCodebaseOrigin,
|
||||
ProjectGoalRef,
|
||||
ProjectManagedByPlugin,
|
||||
ProjectVisibility,
|
||||
ProjectWorkspace,
|
||||
CompanySearchCountType,
|
||||
CompanySearchExtractIssueResult,
|
||||
@@ -1571,10 +1574,12 @@ export {
|
||||
type UpdateAgentPermissions,
|
||||
createProjectSchema,
|
||||
updateProjectSchema,
|
||||
addProjectAccessMemberSchema,
|
||||
createProjectWorkspaceSchema,
|
||||
updateProjectWorkspaceSchema,
|
||||
type CreateProject,
|
||||
type UpdateProject,
|
||||
type AddProjectAccessMember,
|
||||
type CreateProjectWorkspace,
|
||||
type UpdateProjectWorkspace,
|
||||
projectExecutionWorkspacePolicySchema,
|
||||
|
||||
@@ -287,7 +287,18 @@ export type {
|
||||
DocumentTextRange,
|
||||
UpdateDocumentAnnotationThreadRequest,
|
||||
} from "./document-annotation.js";
|
||||
export type { Project, ProjectBudgetSummary, ProjectCodebase, ProjectCodebaseOrigin, ProjectGoalRef, ProjectManagedByPlugin, ProjectWorkspace } from "./project.js";
|
||||
export type {
|
||||
Project,
|
||||
ProjectAccessMember,
|
||||
ProjectAccessSubjectType,
|
||||
ProjectBudgetSummary,
|
||||
ProjectCodebase,
|
||||
ProjectCodebaseOrigin,
|
||||
ProjectGoalRef,
|
||||
ProjectManagedByPlugin,
|
||||
ProjectVisibility,
|
||||
ProjectWorkspace,
|
||||
} from "./project.js";
|
||||
export type {
|
||||
CompanySearchCountType,
|
||||
CompanySearchExtractIssueResult,
|
||||
|
||||
@@ -8,6 +8,19 @@ import type { AgentEnvConfig } from "./secrets.js";
|
||||
|
||||
export type ProjectWorkspaceSourceType = "local_path" | "git_repo" | "remote_managed" | "non_git_path";
|
||||
export type ProjectWorkspaceVisibility = "default" | "advanced";
|
||||
export type ProjectVisibility = "open" | "private";
|
||||
export type ProjectAccessSubjectType = "user" | "agent";
|
||||
|
||||
export interface ProjectAccessMember {
|
||||
id: string;
|
||||
companyId: string;
|
||||
projectId: string;
|
||||
subjectType: ProjectAccessSubjectType;
|
||||
subjectId: string;
|
||||
subjectDisplayName: string | null;
|
||||
subjectAvatarUrl: string | null;
|
||||
createdAt: Date;
|
||||
}
|
||||
|
||||
export interface ProjectGoalRef {
|
||||
id: string;
|
||||
@@ -85,6 +98,10 @@ export interface Project {
|
||||
goals: ProjectGoalRef[];
|
||||
name: string;
|
||||
description: string | null;
|
||||
/** Omitted by older servers/fixtures; clients must treat omission as open. */
|
||||
visibility?: ProjectVisibility;
|
||||
/** Present only for the lazily-created per-user "My private tasks" project. */
|
||||
personalOwnerUserId?: string | null;
|
||||
status: ProjectStatus;
|
||||
leadAgentId: string | null;
|
||||
targetDate: string | null;
|
||||
|
||||
@@ -363,12 +363,14 @@ export {
|
||||
export {
|
||||
createProjectSchema,
|
||||
updateProjectSchema,
|
||||
addProjectAccessMemberSchema,
|
||||
createProjectWorkspaceSchema,
|
||||
updateProjectWorkspaceSchema,
|
||||
projectExecutionWorkspacePolicySchema,
|
||||
projectWorkspaceRuntimeConfigSchema,
|
||||
type CreateProject,
|
||||
type UpdateProject,
|
||||
type AddProjectAccessMember,
|
||||
type CreateProjectWorkspace,
|
||||
type UpdateProjectWorkspace,
|
||||
type ProjectExecutionWorkspacePolicy,
|
||||
|
||||
@@ -103,6 +103,7 @@ const projectFields = {
|
||||
goalIds: z.array(z.string().uuid()).optional(),
|
||||
name: z.string().min(1),
|
||||
description: z.string().optional().nullable(),
|
||||
visibility: z.enum(["open", "private"]).optional().default("open"),
|
||||
status: z.enum(PROJECT_STATUSES).optional().default("backlog"),
|
||||
leadAgentId: z.string().uuid().optional().nullable(),
|
||||
targetDate: z.string().optional().nullable(),
|
||||
@@ -124,4 +125,11 @@ export const updateProjectSchema = z.object(projectFields).partial();
|
||||
|
||||
export type UpdateProject = z.infer<typeof updateProjectSchema>;
|
||||
|
||||
export const addProjectAccessMemberSchema = z.object({
|
||||
subjectType: z.enum(["user", "agent"]),
|
||||
subjectId: z.string().min(1),
|
||||
});
|
||||
|
||||
export type AddProjectAccessMember = z.infer<typeof addProjectAccessMemberSchema>;
|
||||
|
||||
export type ProjectExecutionWorkspacePolicy = z.infer<typeof projectExecutionWorkspacePolicySchema>;
|
||||
Reference in new issue
Block a user