[{"data":1,"prerenderedAt":591},["ShallowReactive",2],{"navigation":3,"/docs/integrations/import":180,"/docs/integrations/import-surround":586},[4,23,103,127,142,157,165],{"title":5,"path":6,"stem":7,"children":8,"icon":22},"Getting Started","/docs/getting-started","docs/1.getting-started/1.index",[9,12,17],{"title":10,"path":6,"stem":7,"icon":11},"What is TaskView","i-lucide-house",{"title":13,"path":14,"stem":15,"icon":16},"Installation","/docs/getting-started/installation","docs/1.getting-started/2.installation","i-lucide-download",{"title":18,"path":19,"stem":20,"icon":21},"Quick Start","/docs/getting-started/usage","docs/1.getting-started/3.usage","i-lucide-rocket",false,{"title":24,"icon":22,"path":25,"stem":26,"children":27,"page":22},"Features","/docs/features","docs/2.features",[28,33,38,43,48,53,58,63,68,73,78,83,88,93,98],{"title":29,"path":30,"stem":31,"icon":32},"Projects and Lists","/docs/features/projects-and-lists","docs/2.features/1.projects-and-lists","i-lucide-folder",{"title":34,"path":35,"stem":36,"icon":37},"Organizations","/docs/features/organizations","docs/2.features/10.organizations","i-lucide-building-2",{"title":39,"path":40,"stem":41,"icon":42},"SSO (Single Sign-On)","/docs/features/sso","docs/2.features/11.sso","i-lucide-shield-check",{"title":44,"path":45,"stem":46,"icon":47},"UI Customization","/docs/features/ui-customization","docs/2.features/12.ui-customization","i-lucide-sliders-horizontal",{"title":49,"path":50,"stem":51,"icon":52},"Calendar","/docs/features/calendar","docs/2.features/13.calendar","i-lucide-calendar-days",{"title":54,"path":55,"stem":56,"icon":57},"SCIM provisioning","/docs/features/scim","docs/2.features/14.scim","i-lucide-users-round",{"title":59,"path":60,"stem":61,"icon":62},"Keyboard Shortcuts","/docs/features/keyboard-shortcuts","docs/2.features/15.keyboard-shortcuts","i-lucide-keyboard",{"title":64,"path":65,"stem":66,"icon":67},"Tasks","/docs/features/tasks","docs/2.features/2.tasks","i-lucide-check-square",{"title":69,"path":70,"stem":71,"icon":72},"Kanban Board","/docs/features/kanban","docs/2.features/3.kanban","i-lucide-columns-3",{"title":74,"path":75,"stem":76,"icon":77},"Dependency Graph","/docs/features/graph","docs/2.features/4.graph","i-lucide-git-branch",{"title":79,"path":80,"stem":81,"icon":82},"Dashboard","/docs/features/dashboard","docs/2.features/5.dashboard","i-lucide-layout-dashboard",{"title":84,"path":85,"stem":86,"icon":87},"Notifications","/docs/features/notifications","docs/2.features/6.notifications","i-lucide-bell",{"title":89,"path":90,"stem":91,"icon":92},"Webhooks","/docs/features/webhooks","docs/2.features/7.webhooks","i-lucide-webhook",{"title":94,"path":95,"stem":96,"icon":97},"API Tokens","/docs/features/api-tokens","docs/2.features/8.api-tokens","i-lucide-key-round",{"title":99,"path":100,"stem":101,"icon":102},"Sessions & Devices","/docs/features/sessions","docs/2.features/9.sessions","i-lucide-monitor-smartphone",{"title":104,"icon":22,"path":105,"stem":106,"children":107,"page":22},"Integrations","/docs/integrations","docs/3.integrations",[108,113,118,123],{"title":109,"path":110,"stem":111,"icon":112},"GitHub, GitLab & Gitea Setup","/docs/integrations/setup","docs/3.integrations/1.setup","i-lucide-git-pull-request",{"title":114,"path":115,"stem":116,"icon":117},"MCP Server","/docs/integrations/mcp","docs/3.integrations/2.mcp","i-lucide-bot",{"title":119,"path":120,"stem":121,"icon":122},"Telegram & Slack Setup","/docs/integrations/messaging","docs/3.integrations/3.messaging","i-lucide-send",{"title":124,"path":125,"stem":126,"icon":16},"Import from other systems","/docs/integrations/import","docs/3.integrations/4.import",{"title":128,"icon":22,"path":129,"stem":130,"children":131,"page":22},"Configuration","/docs/configuration","docs/4.configuration",[132,137],{"title":133,"path":134,"stem":135,"icon":136},"Environment Variables","/docs/configuration/environment-variables","docs/4.configuration/1.environment-variables","i-lucide-settings",{"title":138,"path":139,"stem":140,"icon":141},"Authentication","/docs/configuration/authentication","docs/4.configuration/2.authentication","i-lucide-lock",{"title":143,"icon":22,"path":144,"stem":145,"children":146,"page":22},"Collaboration","/docs/collaboration","docs/5.collaboration",[147,152],{"title":148,"path":149,"stem":150,"icon":151},"Team Members","/docs/collaboration/members","docs/5.collaboration/1.members","i-lucide-users",{"title":153,"path":154,"stem":155,"icon":156},"Roles and Permissions","/docs/collaboration/roles-and-permissions","docs/5.collaboration/2.roles-and-permissions","i-lucide-shield",{"title":158,"path":159,"stem":160,"children":161,"icon":22},"FAQ","/docs/faq","docs/6.faq/1.index",[162],{"title":163,"path":159,"stem":160,"icon":164},"Frequently Asked Questions","i-lucide-circle-help",{"title":166,"icon":22,"path":167,"stem":168,"children":169,"page":22},"Guides","/docs/guides","docs/7.guides",[170,175],{"title":171,"path":172,"stem":173,"icon":174},"Deploy TaskView on a VPS with Nginx","/docs/guides/deploy-vps-nginx","docs/7.guides/1.deploy-vps-nginx","i-lucide-server",{"title":176,"path":177,"stem":178,"icon":179},"TaskView for Freelancers","/docs/guides/taskview-for-freelancers","docs/7.guides/2.taskview-for-freelancers","i-lucide-briefcase",{"id":181,"title":124,"body":182,"description":580,"extension":581,"meta":582,"navigation":583,"path":125,"seo":584,"stem":126,"__hash__":585},"docs/docs/3.integrations/4.import.md",{"type":183,"value":184,"toc":567},"minimark",[185,194,201,206,213,217,224,264,268,391,398,403,418,422,425,437,440,444,463,466,470,484,488,491,494,527,552,563],[186,187,188,189,193],"p",{},"The import copies a project from another system into a ",[190,191,192],"strong",{},"new TaskView project"," in the current organization. Nothing is changed in the source system, and the copy is not kept in sync afterwards.",[186,195,196,197,200],{},"Supported sources: ",[190,198,199],{},"Trello",".",[202,203,205],"h2",{"id":204},"who-can-import","Who can import",[186,207,208,209,212],{},"Only ",[190,210,211],{},"owners and admins of the organization"," can open the import page and start an import, the same people who can create projects. Each import is visible only to the person who started it. Imports can't be started with API tokens.",[202,214,216],{"id":215},"running-an-import","Running an import",[186,218,219,220,223],{},"Open ",[190,221,222],{},"Import"," in the sidebar and follow the four steps:",[225,226,227,243,249,255],"ol",{},[228,229,230,233,234,237,238,242],"li",{},[190,231,232],{},"Connect."," Click ",[190,235,236],{},"Connect Trello"," and allow read-only access in the pop-up window. If your server has no ",[239,240,241],"code",{},"TRELLO_API_KEY"," (see below), or you prefer it, paste a Trello API key and token instead.",[228,244,245,248],{},[190,246,247],{},"Board."," Pick one of the boards your Trello account can see.",[228,250,251,254],{},[190,252,253],{},"Settings."," Check the summary (cards, archived cards, files and their size), choose how Trello lists and checklists are mapped, and match board members with organization members.",[228,256,257,260,261,200],{},[190,258,259],{},"Import."," The import runs in the background with a live progress bar. You can leave the page and come back: the result stays in ",[190,262,263],{},"Recent imports",[202,265,267],{"id":266},"what-is-imported","What is imported",[269,270,271,283],"table",{},[272,273,274],"thead",{},[275,276,277,280],"tr",{},[278,279,199],"th",{},[278,281,282],{},"TaskView",[284,285,286,295,303,311,319,327,335,343,351,359,367,375,383],"tbody",{},[275,287,288,292],{},[289,290,291],"td",{},"Board",[289,293,294],{},"New project with the board's name and description",[275,296,297,300],{},[289,298,299],{},"List",[289,301,302],{},"Kanban column (default) or project list",[275,304,305,308],{},[289,306,307],{},"Card",[289,309,310],{},"Task, in the same order as on the board",[275,312,313,316],{},[289,314,315],{},"Checklist item",[289,317,318],{},"Subtask (default) or a checklist in the task note",[275,320,321,324],{},[289,322,323],{},"Label",[289,325,326],{},"Tag with a matching color",[275,328,329,332],{},[289,330,331],{},"Card members",[289,333,334],{},"Assignees, for members you matched",[275,336,337,340],{},[289,338,339],{},"Start date, due date",[289,341,342],{},"Start date, end date",[275,344,345,348],{},[289,346,347],{},"\"Due date complete\"",[289,349,350],{},"Completed task",[275,352,353,356],{},[289,354,355],{},"Description (Markdown)",[289,357,358],{},"Task note",[275,360,361,364],{},[289,362,363],{},"Comments",[289,365,366],{},"Appended to the task note with author and time (can be turned off)",[275,368,369,372],{},[289,370,371],{},"Uploaded files",[289,373,374],{},"Task files (can be turned off)",[275,376,377,380],{},[289,378,379],{},"Attached links",[289,381,382],{},"Links in the task note",[275,384,385,388],{},[289,386,387],{},"Card link",[289,389,390],{},"Source link on the task",[186,392,393,394,397],{},"Archived cards and lists are skipped by default. With ",[190,395,396],{},"Import archived cards and lists"," turned on, archived cards are imported as completed tasks.",[399,400,402],"h3",{"id":401},"people","People",[186,404,405,406,409,410,413,414,417],{},"Trello doesn't share members' email addresses, so TaskView can't match them automatically. On the ",[190,407,408],{},"Settings"," step you pick an organization member for each board member, or leave ",[190,411,412],{},"Do not assign",". Matched members are added to the new project with the ",[190,415,416],{},"executor"," role. Only members of the current organization can be selected.",[399,419,421],{"id":420},"files","Files",[186,423,424],{},"Uploaded files are downloaded from Trello and stored like any other task file:",[426,427,428,431,434],"ul",{},[228,429,430],{},"they count toward the organization's file quota;",[228,432,433],{},"files larger than the server's per-file limit are skipped;",[228,435,436],{},"if file storage isn't configured on the server, files are skipped and the result says so.",[186,438,439],{},"Each skipped file is listed in the import result. A skipped file doesn't fail the import.",[202,441,443],{"id":442},"if-something-goes-wrong","If something goes wrong",[426,445,446,453,460],{},[228,447,448,449,452],{},"If the import fails or is cancelled ",[190,450,451],{},"before all tasks are created",", the new project is deleted, so you never end up with a half-filled project.",[228,454,455,456,459],{},"If it is cancelled ",[190,457,458],{},"while files are uploading",", the project and all tasks stay, and the files that weren't uploaded yet are skipped.",[228,461,462],{},"If the server restarts during an import, the import is marked as interrupted within about seven hours. Start it again.",[186,464,465],{},"Running the same import twice creates two separate projects.",[202,467,469],{"id":468},"limits","Limits",[426,471,472,475,478,481],{},[228,473,474],{},"One import at a time per user. Starting another while one is queued or running is refused until the first finishes.",[228,476,477],{},"At most 10 successful connections to a source per user per hour.",[228,479,480],{},"A board is imported only if it produces at most 50,000 tasks (cards plus checklist items) and has at most 20,000 cards and 50,000 comments. Larger boards fail with a \"too large\" message before any project is created.",[228,482,483],{},"An import runs for at most 6 hours.",[202,485,487],{"id":486},"server-setup-one-click-trello-connection","Server setup: one-click Trello connection",[186,489,490],{},"Without any configuration, users connect Trello by pasting their own API key and token. The import page explains how to get them.",[186,492,493],{},"To enable one-click connection for everyone on your instance:",[225,495,496,506,513,524],{},[228,497,498,499,505],{},"Open the Trello Power-Up admin page at ",[500,501,502],"a",{"href":502,"rel":503},"https://trello.com/power-ups/admin",[504],"nofollow"," and create a Power-Up.",[228,507,508,509,512],{},"On its ",[190,510,511],{},"API key"," tab, generate an API key.",[228,514,515,516,519,520,523],{},"In ",[190,517,518],{},"Allowed origins",", add the origin of your TaskView web app (for example ",[239,521,522],{},"https://tasks.example.com",").",[228,525,526],{},"Set the key in the API environment and restart the API:",[528,529,534],"pre",{"className":530,"code":531,"language":532,"meta":533,"style":533},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","TRELLO_API_KEY=your-power-up-api-key\n","bash","",[239,535,536],{"__ignoreMap":533},[537,538,541,544,548],"span",{"class":539,"line":540},"line",1,[537,542,241],{"class":543},"sTEyZ",[537,545,547],{"class":546},"sMK4o","=",[537,549,551],{"class":550},"sfazB","your-power-up-api-key\n",[186,553,554,555,558,559,562],{},"In the pop-up, TaskView asks Trello for a ",[190,556,557],{},"read-only"," token that expires after ",[190,560,561],{},"one day",". Any token, from the pop-up or pasted, is stored encrypted only while the import is being prepared or running, and is deleted when the import finishes. Abandoned drafts are removed after 24 hours.",[564,565,566],"style",{},"html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":533,"searchDepth":568,"depth":568,"links":569},2,[570,571,572,577,578,579],{"id":204,"depth":568,"text":205},{"id":215,"depth":568,"text":216},{"id":266,"depth":568,"text":267,"children":573},[574,576],{"id":401,"depth":575,"text":402},3,{"id":420,"depth":575,"text":421},{"id":442,"depth":568,"text":443},{"id":468,"depth":568,"text":469},{"id":486,"depth":568,"text":487},"Move a Trello board into TaskView in one pass. Lists, cards, checklists, labels, members, comments and attached files become a new TaskView project. Imports run in the background and are available to organization owners and admins.","md",{},{"icon":16},{"title":124,"description":580},"_oy4bJ36NsrRKBVPCp9vbN8Dpgv9Sn9QC0wyCIFRR1c",[587,589],{"title":119,"path":120,"stem":121,"description":588,"icon":122,"children":-1},"Connect Telegram and Slack to TaskView to receive task notifications. Personal direct messages and project-wide group channels, with instance-level bot credentials, OAuth, signed inbound webhooks, and SHA-256 hashed binding tokens.",{"title":133,"path":134,"stem":135,"description":590,"icon":136,"children":-1},"Complete reference for TaskView environment variables - database connection, JWT authentication, OAuth providers, SMTP email, GitHub/GitLab integration, encryption, and CORS configuration for your self-hosted Docker deployment.",1793211494137]