Ir para o conteúdo principal

Instalação do Comet for Enterprise (macOS)

Guia para instalar o Comet em grande escala em ambientes macOS

Escrito por Emilio Morales

Este guia é destinado a organizações que precisam instalar o Comet em grande escala. Se você procura o instalador individual do Comet, ele está aqui.

 

Este guia aborda a implantação do navegador Comet em toda a sua organização usando soluções de Mobile Device Management (MDM) em sistemas macOS.

 

Pré-requisitos

Para instalar o Comet for Enterprise usando MDM, você precisará de:

  • Uma solução de MDM (Jamf Pro, Intune, Kandji, Mosyle, Workspace ONE etc.)

  • Acesso às configurações do Comet da sua organização em perplexity.ai/account/org/comet

  • O token da sua organização (disponível na página de configuração do Comet)

Visão geral

As políticas para Mac são implantadas usando Perfis de configuração (arquivos .mobileconfig) pela sua solução de MDM. Esses perfis usam o tipo de payload ai.perplexity.comet para configurar as opções do Comet.

 

Primeiros passos

Primeiro, você precisará baixar o instalador do Comet e obter o token da sua organização em: perplexity.ai/account/org/comet.

O instalador do Comet for Enterprise está disponível atualmente como uma imagem de disco .dmg do macOS.

 

Implantação em massa do Comet

Para implantação em massa usando ferramentas como Jamf Pro:

  1. Envie o arquivo .dmg para sua solução de MDM

  2. Prepare um script que monte o DMG, copie o app Comet para /Applications e desmonte o DMG

  3. Esse script pode fazer parte das suas tarefas pós-instalação ou ser incluído no pacote

  4. Use scripts pós-instalação para:

    • Gerenciar a cópia do app

    • Definir permissões

    • Tornar o Comet o navegador padrão, se necessário

    • Configurar opções da primeira execução (via manipulação de plist, se necessário)

Implantação com Jamf Pro

O Jamf Pro permite implantar e gerenciar configurações personalizadas de aplicativos de duas maneiras diferentes.

  • Usando apenas o conteúdo plist (sem o wrapper mobileconfig completo), em que o Jamf encapsula isso em um perfil de configuração adequado.

  • Usando um schema JSON personalizado para fornecer uma abordagem baseada em interface para gerenciar políticas (exclusiva do Jamf)

Usando plists

Etapa 1: Criar perfil de configuração

  1. Acesse ComputadoresPerfis de configuraçãoNovo

  2. Insira um nome de exibição (por exemplo, "Políticas do Comet")

  3. Selecione Aplicativo e configurações personalizadasAplicativos externos

  4. Selecione Enviar

Etapa 2: Configurar o domínio de preferências

  1. Domínio de preferências: ai.perplexity.comet

  2. Cole o conteúdo plist dos exemplos abaixo

Etapa 3: Definir escopo e implantar

  1. Acesse a aba Escopo 

  2. Adicione computadores ou grupos de destino

  3. Clique em Salvar

Antes de configurar políticas do navegador, primeiro você precisa registrar os dispositivos na sua organização. Isso associa cada instalação do Comet à sua conta Enterprise para gerenciamento centralizado.

 

Obtenha o token da sua organização em perplexity.ai/account/org/comet e implante o plist abaixo:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CloudManagementEnrollmentToken</key>
<string>YOUR-ORG-TOKEN-HERE</string>
</dict>
</plist>

Depois que os dispositivos forem registrados, você poderá implantar perfis de configuração adicionais para aplicar políticas do navegador. Veja os exemplos abaixo.

Exemplo: bloquear extensões

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>ExtensionInstallBlocklist</key>
<array>
<!-- Metamask -->
<string>nkbihfbeogaeaoehlefnkodbefgpgknn</string>
</array>
</dict>
</plist>

Exemplo: bloquear URLs

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>URLBlocklist</key>
<array>
<string>chatgpt.com</string>
<string>*.competitor.com</string>
</array>
</dict>
</plist>

 

Exemplo: várias políticas

Combine várias políticas em um único plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>ExtensionInstallBlocklist</key>
<array>
<string>nkbihfbeogaeaoehlefnkodbefgpgknn</string>
</array>
<key>URLBlocklist</key>
<array>
<string>chatgpt.com</string>
</array>
</dict>
</plist>

 

Usando o schema personalizado do Jamf para uma abordagem baseada em interface

Etapa 1: Criar perfil de configuração

  1. Acesse ComputadoresPerfis de configuraçãoNovo

  2. Insira um nome de exibição (por exemplo, "Políticas do Comet")

  3. Selecione Aplicativo e configurações personalizadasAplicativos externos

  4. Selecione Adicionar

Etapa 2: Configurar o domínio de preferências

  1. Domínio de preferências: ai.perplexity.comet

  2. Selecione Adicionar schema

  3. Cole o JSON Schema para preencher propriedades configuráveis dos exemplos abaixo

Etapa 3: Definir escopo e implantar

  1. Acesse a aba Escopo 

  2. Adicione computadores ou grupos de destino

  3. Clique em Salvar

Exemplo: configurações de página inicial e inicialização

{
"title": "Perplexity Comet – Homepage and Startup",
"description": "Control homepage, startup behavior, and New Tab configuration.",
"properties": {
"HomepageLocation": {
"title": "Homepage Location",
"description": "URL of the homepage that is loaded when the Home button is pressed.",
"type": "string",
"property_order": 10
},
"HomepageIsNewTabPage": {
"title": "Homepage Is New Tab Page",
"description": "If true, the homepage is the New Tab page instead of a custom URL.",
"type": "boolean",
"property_order": 20
},
"ShowHomeButton": {
"title": "Show Home Button",
"description": "Shows or hides the Home button in the toolbar.",
"type": "boolean",
"property_order": 30
},
"RestoreOnStartup": {
"title": "Restore On Startup",
"description": "Configures what pages are shown at startup.",
"type": "integer",
"enum": [0, 1, 4],
"options": {
"enum_titles": [
"0 – Open the New Tab page",
"1 – Restore the last session",
"4 – Open a list of URLs"
]
},
"property_order": 40
},
"RestoreOnStartupURLs": {
"title": "Restore On Startup URLs",
"description": "List of URLs to open on startup when RestoreOnStartup is set to 4.",
"type": "array",
"items": {
"type": "string"
},
"property_order": 50
},
"NewTabPageLocation": {
"title": "New Tab Page Location",
"description": "Custom URL to use for the New Tab page instead of the default.",
"type": "string",
"property_order": 60
},
"ManagedBookmarks": {
"title": "Managed Bookmarks",
"description": "JSON-like structure defining a set of mandatory bookmarks managed by policy.",
"type": "array",
"items": {
"type": "string"
},
"property_order": 70
},
"BookmarkBarEnabled": {
"title": "Bookmark Bar Enabled",
"description": "Shows or hides the bookmarks bar by default.",
"type": "boolean",
"property_order": 80
},
"DefaultBrowserSettingEnabled": {
"title": "Default Browser Setting Enabled",
"description": "Controls whether the browser can be set as the system default.",
"type": "boolean",
"property_order": 90
},
"BlockExternalExtensions": {
"title": "Block External Extensions",
"description": "Blocks extensions installed outside the browser when set to true.",
"type": "boolean",
"property_order": 100
}
},
"required": []
}

Exemplo: forçar instalação de extensões — por exemplo, 1Password e Okta Verify

{
"title": "Perplexity Comet – 1Password and Okta Extensions",
"description": "Toggle force-install for 1Password and Okta extensions in Comet.",
"properties": {
"ForceInstall_1Password": {
"title": "Force install 1Password",
"description": "If enabled, Comet force-installs the 1Password browser extension.",
"type": "boolean",
"default": false,
"property_order": 10
},
"ForceInstall_OktaPlugin": {
"title": "Force install Okta browser plugin",
"description": "If enabled, Comet force-installs the Okta browser plugin defined below.",
"type": "boolean",
"default": false,
"property_order": 20
},
"OktaPluginExtensionId": {
"title": "Okta browser plugin extension ID",
"description": "Chrome Web Store extension ID for your Okta browser plugin (for example, from the Web Store URL).",
"type": "string",
"default": "",
"property_order": 30
},
"ExtensionInstallForcelist": {
"title": "Additional force-installed extensions (advanced)",
"description": "Optional: extra entries in the form extension_id;<https://clients2.google.com/service/update2/crx>. Rows here are in addition to 1Password/Okta switches above.",
"type": "array",
"items": {
"type": "string",
"title": "Extension ID and update URL",
"default": "extension_id;<https://clients2.google.com/service/update2/crx>"
},
"property_order": 40
},
"_info": {
"title": "Info",
"description": "Jamf will write a prefs key named ExtensionInstallForcelist. Enable the switches above to add 1Password and/or Okta automatically; use the array only for extra extensions.",
"type": "string",
"options": {
"inputAttributes": {
"readonly": true
}
},
"property_order": 50
}
},
"required": []
}

 

 

Implantação genérica com MDM

Para soluções de MDM que exigem um arquivo .mobileconfig completo, como Kandji, Mosyle, Fleet, SimpleMDM etc., use o formato completo de perfil de configuração abaixo.

 

Etapas de implantação:

  1. Copie o modelo de exemplo e personalize-o conforme suas necessidades

  2. Gere UUIDs exclusivos para os campos PayloadUUID (use uuidgen no Terminal)

  3. Salve como um arquivo .mobileconfig 

  4. Envie para seu MDM como um perfil de configuração personalizado

  5. Atribua a dispositivos ou grupos de destino

Antes de configurar políticas do navegador, primeiro você precisa registrar os dispositivos na sua organização. Isso associa cada instalação do Comet à sua conta Enterprise para gerenciamento centralizado.

 

Implante um perfil de configuração contendo seu CloudManagementEnrollmentToken. Obtenha o token da sua organização em perplexity.ai/account/org/comet.

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PayloadContent</key>
<array>
<dict>
<key>PayloadType</key>
<string>ai.perplexity.comet</string>
<key>PayloadIdentifier</key>
<string>ai.perplexity.comet</string>
<key>PayloadUUID</key>
<string>A1B2C3D4-E5F6-7890-ABCD-EF1234567890</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>CloudManagementEnrollmentToken</key>
<string>YOUR-ORG-TOKEN-HERE</string>
</dict>
</array>
<key>PayloadDisplayName</key>
<string>Comet - Organization Enrollment</string>
<key>PayloadIdentifier</key>
<string>ai.perplexity.comet.org-enrollment</string>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadUUID</key>
<string>B2C3D4E5-F6A7-8901-BCDE-F23456789012</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</plist>

Depois que os dispositivos forem registrados, você poderá implantar perfis de configuração adicionais para aplicar políticas do navegador. Veja os exemplos abaixo.

 

Exemplo: bloquear extensões

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PayloadContent</key>
<array>
<dict>
<key>PayloadDisplayName</key>
<string>Comet Extension Blocklist Policy</string>
<key>PayloadIdentifier</key>
<string>ai.perplexity.comet</string>
<key>PayloadType</key>
<string>ai.perplexity.comet</string>
<key>PayloadUUID</key>
<string>12345678-1234-1234-1234-123456789012</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>ExtensionInstallBlocklist</key>
<array>
<!-- Metamask -->
<string>nkbihfbeogaeaoehlefnkodbefgpgknn</string>
</array>
</dict>
</array>
<key>PayloadDisplayName</key>
<string>Comet - Extension Blocklist</string>
<key>PayloadIdentifier</key>
<string>ai.perplexity.comet.extension.blocklist</string>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadUUID</key>
<string>87654321-4321-4321-4321-210987654321</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</plist>

Exemplo: bloquear URLs

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PayloadContent</key>
<array>
<dict>
<key>PayloadDisplayName</key>
<string>Comet URL Blocklist Policy</string>
<key>PayloadIdentifier</key>
<string>ai.perplexity.comet</string>
<key>PayloadType</key>
<string>ai.perplexity.comet</string>
<key>PayloadUUID</key>
<string>12345678-1234-1234-1234-123456789012</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>URLBlocklist</key>
<array>
<string>chatgpt.com</string>
<string>*.competitor.com</string>
</array>
</dict>
</array>
<key>PayloadDisplayName</key>
<string>Comet - URL Blocklist</string>
<key>PayloadIdentifier</key>
<string>ai.perplexity.comet.url.blocklist</string>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadUUID</key>
<string>87654321-4321-4321-4321-210987654321</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</plist>