Asana
Project Connectors/TaskManagement/AsanaDataSource/. AsanaDataSource : WebAPIDataSource. Namespace TheTechIdea.Beep.Connectors.TaskManagement.Asana (…Asana.Models). DataSourceType.Asana, DatasourceCategory.Connector.
API surface
Targets the Asana REST API (https://app.asana.com/api/1.0). Entities and operations follow the shared WebAPIDataSource pattern with JSON entity maps in source; use the Connection section below for base URL and authentication.
Source & IDataSource
Implementation: Connectors/TaskManagement/AsanaDataSource/AsanaDataSource.cs — AsanaDataSource : WebAPIDataSource. Reads use GetEntity with logical keys (workspaces, projects.get, …); mutating calls use PostAsync, PutAsync, or DeleteAsync against API_BASE_URL.
Command methods (CommandAttribute)
Name | Method | Returns | ObjectType |
|---|---|---|---|
| GetWorkspaces | GetWorkspaces() | IEnumerable<AsanaWorkspace> | AsanaWorkspace |
| GetWorkspace | GetWorkspace(string workspaceId) | IEnumerable<AsanaWorkspace> | AsanaWorkspace |
| GetProjects | GetProjects() | IEnumerable<AsanaProject> | AsanaProject |
| GetProject | GetProject(string projectId) | IEnumerable<AsanaProject> | AsanaProject |
| GetWorkspaceProjects | GetWorkspaceProjects(string workspaceId) | IEnumerable<AsanaProject> | AsanaProject |
| GetTasks | GetTasks() | IEnumerable<AsanaTask> | AsanaTask |
| GetTask | GetTask(string taskId) | IEnumerable<AsanaTask> | AsanaTask |
| GetProjectTasks | GetProjectTasks(string projectId) | IEnumerable<AsanaTask> | AsanaTask |
| GetUsers | GetUsers() | IEnumerable<AsanaUser> | AsanaUser |
| GetUser | GetUser(string userId) | IEnumerable<AsanaUser> | AsanaUser |
| GetTeams | GetTeams() | IEnumerable<AsanaTeam> | AsanaTeam |
| GetTeam | GetTeam(string teamId) | IEnumerable<AsanaTeam> | AsanaTeam |
| GetSections | GetSections(string projectId) | IEnumerable<AsanaSection> | AsanaSection |
| GetTags | GetTags(string workspaceId) | IEnumerable<AsanaTag> | AsanaTag |
| GetStories | GetStories(string taskId) | IEnumerable<AsanaStory> | AsanaStory |
| CreateProject | CreateProjectAsync(AsanaProject project) | Task<IEnumerable<AsanaProject>> | AsanaProject |
| CreateTask | CreateTaskAsync(AsanaTask task) | Task<IEnumerable<AsanaTask>> | AsanaTask |
| CreateSection | CreateSectionAsync(string projectId, AsanaSection section) | Task<IEnumerable<AsanaSection>> | AsanaSection |
| CreateTag | CreateTagAsync(string workspaceId, AsanaTag tag) | Task<IEnumerable<AsanaTag>> | AsanaTag |
| UpdateProject | UpdateProjectAsync(string projectId, AsanaProject project) | Task<IEnumerable<AsanaProject>> | AsanaProject |
| UpdateTask | UpdateTaskAsync(string taskId, AsanaTask task) | Task<IEnumerable<AsanaTask>> | AsanaTask |
| DeleteProject | DeleteProjectAsync(string projectId) | Task<bool> | AsanaProject |
| DeleteTask | DeleteTaskAsync(string taskId) | Task<bool> | AsanaTask |
| DeleteSection | DeleteSectionAsync(string sectionId) | Task<bool> | AsanaSection |
| DeleteTag | DeleteTagAsync(string tagId) | Task<bool> | AsanaTag |
Model types
TheTechIdea.Beep.Connectors.TaskManagement.Asana.Models — entity DTOs above plus AsanaApiResponse<T> for REST envelope parsing; see Models.cs for full property sets on workspace, project, task, user, team, section, tag, and story types.
Connection
Configure base URL and authentication (personal access token or OAuth bearer) through WebAPIConnectionProperties per your Asana app. Scopes must cover the workspaces, projects, and tasks you read or write.