-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathsrc_asana.yml
208 lines (184 loc) · 9.79 KB
/
src_asana.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
version: 2
sources:
- name: asana
database: "{% if target.type != 'spark' %}{{ var('asana_database', target.database)}}{% endif %}"
schema: "{{var ('asana_schema', 'asana')}}"
loader: fivetran
loaded_at_field: _fivetran_synced
freshness:
warn_after: {count: 72, period: hour}
error_after: {count: 96, period: hour}
tables:
- name: user
identifier: "{{ var('asana_user_identifier', 'user')}}"
description: Table of all accounts in the organization
freshness: null
columns:
- name: id
description: System generated unique ID for a user
- name: email
description: Email associated with the user
- name: name
description: Given name for the user as it appears in the UI
- name: task
identifier: "{{ var('asana_task_identifier', 'task')}}"
description: Table containing all created tasks
columns:
- name: id
description: System generated unique identifier for the task
- name: assignee_id
description: Foreign key referencing the USER assigned to this task (note that a task may not have an assignee)
- name: completed
description: Boolean that's true if the task is *currently* marked completed. Note that a task can be unmarked complete
- name: completed_at
description: Timestamp of when the task was completed, if still currently completed.
- name: completed_by_id
description: Foreign key that references the USER who completed the task, if currently completed.
- name: created_at
description: Timestamp of when the task was first made
- name: due_on
description: The date on which the task is due. Note that not tasks may not have a due date
- name: due_at
description: The date and time at which the task is due, only if a specific time is given.
- name: modified_at
description: The last time the task was updated. Does not include comments nor changes in associations (ie their projects)
- name: name
description: The title of the task
- name: notes
description: Free-form textual description of the task (as seen in the UI).
- name: liked
description: A boolean that's true if the task has been liked.
- name: num_likes
description: An integer indicating the number of likes on a task.
- name: parent_id
description: The ID of the parent of the task, if it is a subtask. Self-refers to TASK
- name: start_on
description: The start date of the task, if given with the due date
- name: workspace_id
description: The id of an organization's workspace in asana. Not necessary unless you have access to multiple organization's asanas.
- name: project
identifier: "{{ var('asana_project_identifier', 'project')}}"
description: Table containing all projects
freshness: null
columns:
- name: id
description: System generated unique ID of the project.
- name: archived
description: Boolean representing whether the project has been archived (removed from asana UI).
- name: color
description: Color of the project as seen in the UI.
- name: created_at
description: Timestamp of when the story was made/the action was logged.
- name: current_status
description: The most recent progress status update for the project. This is sent to all project followers.
- name: due_date
description: The date the project is due.
- name: modified_at
description: The last time the project was updated. Does not include comments nor changes in associations (ie new tasks).
- name: name
description: The given name of the project.
- name: notes
description: Free-form textual notes associated with the project.
- name: owner_id
description: Foreign key referencing the USER who owns the project.
- name: public
description: Boolean that is true if the project is public to the whole organization, false if not.
- name: team_id
description: Foreign key referencing the TEAM that the project is shared with.
- name: workspace_id
description: The id of an organization's workspace in asana. Not necessary unless you have access to multiple asana workspaces.
- name: story
identifier: "{{ var('asana_story_identifier', 'story')}}"
description: Table containing all stories -- stories are actions taken on tasks
columns:
- name: id
description: System generated unique ID of the story/action taken
- name: created_at
description: Timestamp of when the story was made/the action was logged
- name: created_by_id
description: Foreign key referencing the USER who created the story/took the action on the task (sometimes null)
- name: target_id
description: Foreign key referencing the TASK that the story is about.
- name: text
description: Free-form text describing the action that was taken (if type = system), or the content of a comment (if type = comment)
- name: type
description: The origin type of the story - a comment or change to the backend/altering a task
- name: source
description: Where the story occurred (web, mobile, email, or api)
- name: team
identifier: "{{ var('asana_team_identifier', 'team')}}"
description: Table of the teams within the organization
freshness: null
columns:
- name: id
description: System generated unique ID for each team
- name: name
description: Provided name for each team. There can be duplicates
- name: organization_id
description: Equivalent to the workspace_id, as organizations are a kind of workspace. Probably not relevant unless working with multiple orgs.
- name: tag
identifier: "{{ var('asana_tag_identifier', 'tag')}}"
description: Table of the custom tags made in the organization
config:
enabled: "{{ var('asana__using_tags', True) }}" # Disable if asana__using_tags is False
freshness: null
columns:
- name: id
description: System generated ID for each tag
- name: name
description: The name of the tag as it appears in the UI. There can be duplicates.
- name: created_at
description: Timestamp of when the tag was created
- name: color
description: Chosen color of the tag as it appears in the UI
- name: section
identifier: "{{ var('asana_section_identifier', 'section')}}"
description: Table of all sections within projects. If tasks in a project are not in an explicit user-made section, a default section called "(no section)" is created here
freshness: null
columns:
- name: id
description: System generated unique ID for each section
- name: created_at
description: Timestamp of when the section was created by a user
- name: name
description: The given name of the section as it appears in the UI. Is stored as "(no section)" when this is the default bucket for tasks with a section in a project
- name: project_id
description: Foreign key referencing the PROJECT that the section lives in
- name: project_task
identifier: "{{ var('asana_project_task_identifier', 'project_task')}}"
description: Table of tasks and the project(s) they each belong to. If a project doesn't have a task, it won't be in here (and vice versa)
freshness: null
columns:
- name: project_id
description: Foreign key referencing a PROJECT the task belongs to
- name: task_id
description: Foreign key referencing the TASK in the project
- name: task_follower
identifier: "{{ var('asana_task_follower_identifier', 'task_follower')}}"
description: Table of tasks with the users that are following them. Tasks without users do not appear here.
freshness: null
columns:
- name: task_id
description: Foreign key referencing the TASK being followed
- name: user_id
description: Foreign key referencing the USER that is following the task
- name: task_tag
identifier: "{{ var('asana_task_tag_identifier', 'task_tag')}}"
description: Table of tasks with the tags attached to them. Tasks without tags (and vice versa) do not appear here.
config:
enabled: "{{ var('asana__using_task_tags', True) }}" # Disable if asana__using_task_tags is False
freshness: null
columns:
- name: task_id
description: Foreign key referencing the TASK that is tagged
- name: tag_id
description: Foreign key referencing the TAG that is applied to the task
- name: task_section
identifier: "{{ var('asana_task_section_identifier', 'task_section')}}"
description: Table of tasks and the section that they live under. Section-less tasks within projects appear here, but project-less tasks do not
freshness: null
columns:
- name: section_id
description: Foreign key referencing the SECTION that the task lives under.
- name: task_id
description: Foreign key referencing the TASK that lives in a section.