@appland/appmap 3.133.0 → 3.134.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/built/cmds/index/index.js +3 -3
  3. package/built/cmds/index/index.js.map +1 -1
  4. package/built/cmds/index/rpc.js +18 -7
  5. package/built/cmds/index/rpc.js.map +1 -1
  6. package/built/cmds/navie/help.js +122 -0
  7. package/built/cmds/navie/help.js.map +1 -0
  8. package/built/docs/CLA Instructions.pdf +0 -0
  9. package/built/docs/Code of Conduct for Contributors.pdf +0 -0
  10. package/built/docs/analysis/rules-reference.html +27 -0
  11. package/built/docs/appmap-overview.md +54 -0
  12. package/built/docs/community.md +27 -0
  13. package/built/docs/diagrams/dependency-map.md +63 -0
  14. package/built/docs/diagrams/flamegraph.md +91 -0
  15. package/built/docs/diagrams/how-it-works.md +60 -0
  16. package/built/docs/diagrams/index.md +20 -0
  17. package/built/docs/diagrams/sequence-diagram.md +75 -0
  18. package/built/docs/diagrams/trace-view.md +55 -0
  19. package/built/docs/guides/configuring-analysis.md +157 -0
  20. package/built/docs/guides/handling-large-appmaps.md +43 -0
  21. package/built/docs/guides/index.md +17 -0
  22. package/built/docs/guides/openapi.md +104 -0
  23. package/built/docs/guides/reading-sql-in-appmaps.md +67 -0
  24. package/built/docs/guides/refine-appmaps.md +186 -0
  25. package/built/docs/guides/reverse-engineering.md +375 -0
  26. package/built/docs/guides/runtime-code-review.md +108 -0
  27. package/built/docs/integrations/atlassian-compass.md +24 -0
  28. package/built/docs/integrations/atlassian-confluence.md +50 -0
  29. package/built/docs/integrations/docker.md +108 -0
  30. package/built/docs/integrations/github-actions.md +24 -0
  31. package/built/docs/integrations/index.md +17 -0
  32. package/built/docs/integrations/plantuml.md +65 -0
  33. package/built/docs/integrations/postman.md +29 -0
  34. package/built/docs/integrations/readme.md +38 -0
  35. package/built/docs/integrations/smartbear-swaggerhub.md +125 -0
  36. package/built/docs/navie/bring-your-own-key.md +98 -0
  37. package/built/docs/navie/demo.md +49 -0
  38. package/built/docs/navie/how-navie-works.md +26 -0
  39. package/built/docs/navie/how-to-use-navie.md +152 -0
  40. package/built/docs/navie/index.md +20 -0
  41. package/built/docs/reference/analysis-labels.md +48 -0
  42. package/built/docs/reference/analysis-rules.md +60 -0
  43. package/built/docs/reference/appmap-agent-js.md +215 -0
  44. package/built/docs/reference/appmap-client-cli.md +527 -0
  45. package/built/docs/reference/appmap-gradle-plugin.md +140 -0
  46. package/built/docs/reference/appmap-java.md +310 -0
  47. package/built/docs/reference/appmap-maven-plugin.md +163 -0
  48. package/built/docs/reference/appmap-node.md +185 -0
  49. package/built/docs/reference/appmap-python.md +395 -0
  50. package/built/docs/reference/appmap-ruby.md +514 -0
  51. package/built/docs/reference/github-action.md +164 -0
  52. package/built/docs/reference/index.md +23 -0
  53. package/built/docs/reference/jetbrains.md +119 -0
  54. package/built/docs/reference/license-key-install.md +73 -0
  55. package/built/docs/reference/remote-recording-api.md +97 -0
  56. package/built/docs/reference/uninstalling-appmap.md +109 -0
  57. package/built/docs/reference/vscode.md +125 -0
  58. package/built/docs/setup-appmap-in-ci/example-projects.md +20 -0
  59. package/built/docs/setup-appmap-in-ci/how-it-works.md +42 -0
  60. package/built/docs/setup-appmap-in-ci/in-circleci.md +422 -0
  61. package/built/docs/setup-appmap-in-ci/in-github-actions.md +176 -0
  62. package/built/docs/setup-appmap-in-ci/index.md +21 -0
  63. package/built/docs/setup-appmap-in-ci/matrix-builds.md +224 -0
  64. package/built/docs/setup-appmap-in-ci/troubleshooting.md +70 -0
  65. package/built/docs/setup-appmap-in-your-code-editor/add-appmap-to-your-code-editor.md +43 -0
  66. package/built/docs/setup-appmap-in-your-code-editor/appmap-analysis.md +76 -0
  67. package/built/docs/setup-appmap-in-your-code-editor/generate-appmaps-from-tests.md +92 -0
  68. package/built/docs/setup-appmap-in-your-code-editor/generate-appmaps-with-remote-recording.md +111 -0
  69. package/built/docs/setup-appmap-in-your-code-editor/generate-appmaps-with-request-recording.md +79 -0
  70. package/built/docs/setup-appmap-in-your-code-editor/how-appmap-works.md +165 -0
  71. package/built/docs/setup-appmap-in-your-code-editor/index.md +23 -0
  72. package/built/docs/setup-appmap-in-your-code-editor/navigating-appmaps.md +58 -0
  73. package/built/docs/setup-appmap-in-your-code-editor/navigating-code-objects.md +66 -0
  74. package/built/docs/unused_for_now_index.html +11 -0
  75. package/built/rpc/appmap/stats.js +1 -1
  76. package/built/rpc/appmap/stats.js.map +1 -1
  77. package/built/rpc/explain/explain.js +6 -1
  78. package/built/rpc/explain/explain.js.map +1 -1
  79. package/built/rpc/explain/navie/navie-local.js +6 -2
  80. package/built/rpc/explain/navie/navie-local.js.map +1 -1
  81. package/built/rpc/explain/navie/navie-remote.js +5 -1
  82. package/built/rpc/explain/navie/navie-remote.js.map +1 -1
  83. package/package.json +3 -3
@@ -0,0 +1,98 @@
1
+ ---
2
+ layout: docs
3
+ title: Docs - AppMap Navie
4
+ name: Bring Your Own Key
5
+ step: 4
6
+ navie: true
7
+ toc: true
8
+ ---
9
+
10
+ # Bring Your Own Key (BYOK)
11
+
12
+ By default, when asking a question to Navie, your code editor will interact with the AppMap hosted proxy for OpenAI. If you have a requirement to bring your own key or otherwise use your own OpenAI account you can follow these steps to update the OpenAI key. Refer to the Navie Docs for more details about [Navie technical architecture](/docs/navie/how-navie-works).
13
+
14
+ - [Add a new OpenAI Key](#add-a-new-openai-key)
15
+ - [Delete a configured OpenAI Key](#delete-a-configured-openai-key)
16
+ - [Check the status of your OpenAI key](#check-the-status-of-your-openai-key)
17
+ - [FAQs](#faqs)
18
+ - [How is my API key saved securely?](#how-is-my-api-key-saved-securely)
19
+
20
+ ## Add a new OpenAI Key
21
+
22
+ In VS Code, open the Command Palette.
23
+
24
+ You can use a hotkey to open the VS Code Command Palette
25
+ - Mac: `Cmd + Shift + P`
26
+ - Windows/Linux: `Ctrl + Shift + P`
27
+
28
+ Or you can select `View` -> `Command Palette`
29
+
30
+ <img class="video-screenshot" src="/assets/img/product/byok-command-palette.webp"/>
31
+
32
+ Search for `AppMap Set OpenAPI Key`
33
+
34
+ <img class="video-screenshot" src="/assets/img/product/byok-search.webp"/>
35
+
36
+ Paste your key into the new field and hit enter.
37
+
38
+ You'll get a notification in VS Code that your key is set.
39
+
40
+ **NOTE:** You will need to reload your window for the setting to take effect. Use the Command Palette `Developer: Reload Window`
41
+
42
+ <img class="video-screenshot" src="/assets/img/product/byok-key-set.webp"/>
43
+
44
+ ## Delete a configured OpenAI Key
45
+
46
+ To delete your key, simply open the Command Palette
47
+
48
+ You can use a hotkey to open
49
+ - Mac: `Cmd + Shift + P`
50
+ - Windows/Linux: `Ctrl + Shift + P`
51
+
52
+ Or you can select `View` -> `Command Palette`
53
+
54
+ <img class="video-screenshot" src="/assets/img/product/byok-command-palette.webp"/>
55
+
56
+ Search for `AppMap Set OpenAPI Key`
57
+
58
+ <img class="video-screenshot" src="/assets/img/product/byok-search.webp"/>
59
+
60
+ And simply hit enter with the field blank. VS Code will notify you that the key has been unset.
61
+
62
+ **NOTE:** You will need to reload your window for the setting to take effect. Use the Command Palette `Developer: Reload Window`
63
+
64
+ <img class="video-screenshot" src="/assets/img/product/byok-key-erased.webp"/>
65
+
66
+ ## Check the status of your OpenAI key
67
+
68
+ To check if you are using the AppMap hosted proxy or your own API Key open the Command Palette.
69
+
70
+ You can use a hotkey to open
71
+ - Mac: `Cmd + Shift + P`
72
+ - Windows/Linux: `Ctrl + Shift + P`
73
+
74
+ Or you can select `View` -> `Command Palette`
75
+
76
+ <img class="video-screenshot" src="/assets/img/product/byok-command-palette.webp"/>
77
+
78
+ Search for `Check Key Status`
79
+
80
+ <img class="video-screenshot" src="/assets/img/product/byok-check-status.webp"/>
81
+
82
+ Select `Check OpenAI API Key Status`
83
+
84
+ The code editor will respond a notifiction in the bottom corner with your latest status.
85
+
86
+ <img class="video-screenshot" src="/assets/img/product/byok-check-status-resp.webp"/>
87
+
88
+
89
+ # FAQs
90
+
91
+ ## How is my API key saved securely?
92
+
93
+ For secure storage of API key secrets within AppMap, we use the default VS Code secreat storage which leverages Electron's safeStorage API to ensure the confidentiality of sensitive information. Upon encryption, secrets are stored within the user data directory in a SQLite database, alongside other VS Code state information. This encryption process involves generating a unique encryption key, which, on macOS, is securely stored within Keychain Access under "Code Safe Storage" or "Code - Insiders Safe Storage," depending on the version. This method provides a robust layer of protection, preventing unauthorized access by other applications or users with full disk access. The safeStorage API, accessible in the main process, supports operations such as checking encryption availability, encrypting and decrypting strings, and selecting storage backends on Linux. This approach ensures that your secrets are securely encrypted and stored, safeguarding them from potential threats while maintaining application integrity.
94
+
95
+
96
+
97
+
98
+
@@ -0,0 +1,49 @@
1
+ ---
2
+ layout: docs
3
+ title: Docs - AppMap Navie
4
+ name: Demo
5
+ step: 5
6
+ navie: true
7
+ ---
8
+
9
+ # Video Demo
10
+
11
+ **In this video**
12
+
13
+ We use Navie to learn how to add a custom offline captcha to a Django powered web store. We will generate AppMaps of our user registration process, and then ask Navie for where and how to add this feature. By using Retrieval-Augmented Generation, our answers from the Generative AI are highly specific to our codebase and how it operates allowing me to quicking find exactly where to add a new feature even while having little previous knowledge of this code base.
14
+
15
+ {% include vimeo.html id='915670906' %}
16
+
17
+ ## Follow Along
18
+
19
+ I'm here today to show you how to use the new AppMap Navie. AppMap Navie isn't just another AI code assistant, it's the missing link that improves the power of AI code completers and code assistants. Leveraging the unique ability that AppMap has to understand your code's execution at runtime, Navie transforms this data into a powerhouse of hyper-personalized context-aware insights for AI-assisted coding. That means you're not just working with static analysis anymore, and you're not looking at just individual files or functions. You're stepping into a realm where Navie can understand the entire codebase at an architectural level, how it behaves and executes, and provide much more detailed answers to your software questions.
20
+
21
+ So in this example, I'm a software engineer working on a Django-powered web store. I've been tasked with adding a captcha for the registration page here. I've got AppMap installed with my project already, which means as I interact with my registration page, it will generate AppMaps automatically for my service. You can also use tests to interact with any part of your application to generate AppMaps. You can see here navigating these AppMaps, I can see this API request all the way down to the database and all the code in between.
22
+
23
+ <img class="video-screenshot" src="/assets/img/docs/navie-demo-1.webp"/>
24
+
25
+ So now I can use this data to ask AppMap Navie what areas of my codebase are involved in the new user registration service because I want to find the files so that I can add an offline captcha. AppMap Navie will now search through all of my AppMaps and provide the detailed runtime sequence diagrams as additional context to the generative AI. You can use the AppMap-provided GPT-4 models or bring your own API keys. I can search through my AppMap data based on my request and send this data along to the generative AI service to get a much clearer view into exactly what files I need to find and edit.
26
+
27
+ <img class="video-screenshot" src="/assets/img/docs/navie-demo-2.webp"/>
28
+
29
+ If I was using an AI-powered code autocompleter, I would need to already know what files or functions that this request hits. I would actually need to be in the function to make this code change. AppMap sees how my code executes and Navie provides the AI with the context. I get very clear and direct insight into exactly where I need to make this code change.
30
+
31
+ <img class="video-screenshot" src="/assets/img/docs/navie-demo-3.webp"/>
32
+
33
+ Now that Navie has summarized how this feature works and walked me through the code interactions, I'm going to ask for more specific information on how to implement this change. Let's review what it recommended. First, it's going to want me to install the Django Simple Captcha service, which we'll do here. Then we're going to add the application to our settings file.
34
+
35
+ Next, we're going to update this line here in our urls.py file. In the next step, we need to update the registration form at forms.py. We'll go open that file here and add the first line to import the package. In the next section, we need to add the Captcha to the form, but it didn't tell us which specific function we need to add that in. Looking through this code, I'm really not sure where I need to add this, so I think it's time we ask another question.
36
+
37
+ We'll ask Navie about this specific library, giving it this additional context, and you'll see a simple example on where we can add this feature will be given back to us. Upon asking this question with more specific context, you'll notice that Navie is telling us to add this to the email user creation form.
38
+
39
+ <img class="video-screenshot" src="/assets/img/docs/navie-demo-4.webp"/>
40
+
41
+ Now, let's go back to that file and search for that function. And now we can see right here is where we'll add the Captcha in the right location. So we've already added it to our installed apps, but we have not yet run a database migration, so I'm going to do that now. With our database migration executed, we can continue the steps and update the HTML template for the registration page, which I can search for here.
42
+
43
+ Using this registration template, we can copy the code over from Navie and paste it into this section above the submit button. Let's refresh our page now and head over to the registration portal, and you'll see this new Captcha field has been created. So let's test this out. We'll fill this form out and complete the Captcha correctly, and the user account gets created.
44
+
45
+ <img class="video-screenshot" src="/assets/img/docs/navie-demo-5.webp"/>
46
+
47
+ Now we'll do that one more time, but we'll register our account with an invalid Captcha. You'll see that registration has failed and the user was notified that the Captcha was incorrect.
48
+
49
+ Now you can see how AppMap improves the AI coding experience across your entire application. If you asked asked similar questions to a standard AI assistant you would only get generic answers based on existing public knowledge. Without knowledge of your code, these generic reponses will leave you continuing to hunt and search thru a complex code base. With AppMap able to see all of your codes runtime behavior, it can now provide context-aware insights to power these hyper-personalized responses to your software questions in your code editor.
@@ -0,0 +1,26 @@
1
+ ---
2
+ layout: docs
3
+ title: Docs - AppMap Navie
4
+ name: How Navie Works
5
+ step: 2
6
+ navie: true
7
+ ---
8
+
9
+ # How Navie Works
10
+
11
+ Navie uses your existing AppMap data to improve the accuracy and reliability of Generative AI models using Retrieval-Augmented Generation (RAG). When a question is asked to the Navie chat interface, AppMap will search through your locally stored AppMaps to identify the most relevant maps related to your question. Then Navie will use these maps to identify the relevant code snippets related to the question. This corpus of data becomes the context provided to the Generative AI service which includes your original question.
12
+
13
+ This powerful technique provides the AI with many valuable pieces of information:
14
+ 1) Runtime sequence diagram information of your application
15
+ 2) Relevant source code files and snippets involved or related to your question.
16
+ 3) Granular application tracing data.
17
+ 4) Detailed insights into data flows, SQL queries, and other database interactions.
18
+
19
+
20
+ ## Navie Technical Architecture
21
+
22
+ Navie integrates seamlessly into your existing AppMap enabled project. Once you have the AppMap software libraries installed into your project, interact with your application or run tests to automatically generate AppMap data. All of your code and AppMap data will stay locally in your environment until you ask Navie a question. After asking a question to Navie, the relevant AppMaps and code snippets are located locally by the AppMap search and explain API, then this data is sent to OpenAI (available option to bring your own LLM), and the response is returned to the user.
23
+
24
+ <img class="video-screenshot" src="/assets/img/product/navie-architecture.webp"/>
25
+
26
+ For more details about the privacy and security of your AppMap data, refer to the [AppMap Security FAQ](https://appmap.io/security)
@@ -0,0 +1,152 @@
1
+ ---
2
+ layout: docs
3
+ title: Docs - AppMap Navie
4
+ name: How to use Navie
5
+ step: 3
6
+ navie: true
7
+ toc: true
8
+ ---
9
+
10
+ # How to Use Navie
11
+
12
+ When you ask a question to Navie, it will search through all your AppMaps created for your project to pull in relevant traces, sequence diagrams, and code snippets for analysis. It will then send these code snippets and runtime code sequence diagrams to the Generative AI service along with your question. By sending this valuable context to the AI interface, your answers will be much more personal and specific to your codebase, files, and functions. Additionally, the Generative AI will be able to understand how your code works at runtime and will be able to make architectural level recommendations across your entire application.
13
+
14
+ - [How to Open Navie](#how-to-open-navie)
15
+ - [In VS Code](#in-vs-code)
16
+ - [In JetBrains](#in-jetbrains)
17
+ - [How to Generate the Highest Quality Answers](#how-to-generate-the-highest-quality-answers)
18
+ - [Create AppMaps](#create-appmaps)
19
+ - [Ask Navie](#ask-navie)
20
+ - [Write Code](#write-code)
21
+ - [Repeat](#repeat)
22
+ - [Next Steps](#next-steps)
23
+
24
+ ## How to Open Navie
25
+
26
+ There are three ways to access Navie in your code editor:
27
+ - [How to Open Navie](#how-to-open-navie)
28
+ - [In VS Code](#in-vs-code)
29
+ - [In the AppMap Plugin Instructions Section](#in-the-appmap-plugin-instructions-section)
30
+ - [Via the VS Code Command Palette](#via-the-vs-code-command-palette)
31
+ - [Select a code block and use the lightbulb](#select-a-code-block-and-use-the-lightbulb)
32
+ - [In JetBrains](#in-jetbrains)
33
+ - [In the AppMap Sidebar Plugin](#in-the-appmap-sidebar-plugin)
34
+ - [Via the JetBrains Tools menu option](#via-the-jetbrains-tools-menu-option)
35
+ - [How to Generate the Highest Quality Answers](#how-to-generate-the-highest-quality-answers)
36
+ - [Create AppMaps](#create-appmaps)
37
+ - [Ask Navie](#ask-navie)
38
+ - [Write Code](#write-code)
39
+ - [Repeat](#repeat)
40
+ - [Next Steps](#next-steps)
41
+
42
+ ### In VS Code
43
+
44
+ #### In the AppMap Plugin Instructions Section
45
+
46
+ You can Ask Navie by opening the AppMap Instructions drop down and select on the "Ask AppMap Navie AI".
47
+
48
+ <img class="video-screenshot" src="/assets/img/product/navie-navigation.webp"/>
49
+
50
+ #### Via the VS Code Command Palette
51
+
52
+ You can open the VS Code Command Palette
53
+ - Mac: `Cmd + Shift + P`
54
+ - Windows/Linux: `Ctrl + Shift + P`
55
+
56
+ And search for `Navie`
57
+
58
+ <img class="video-screenshot" src="/assets/img/product/command-palette-navie.webp"/>
59
+
60
+ #### Select a code block and use the lightbulb
61
+
62
+ Finally you can open Navie by selecting a block of text and using the lightbulb to ask Navie about your code.
63
+
64
+ <img class="video-screenshot" src="/assets/img/product/lightbulb.webp"/>
65
+
66
+ ### In JetBrains
67
+
68
+ #### In the AppMap Sidebar Plugin
69
+
70
+ You can open the AppMap plugin in your sidebar.
71
+
72
+ <img class="video-screenshot" src="/assets/img/product/appmap-sidebar.webp"/>
73
+
74
+ Then select Ask AppMap Navie AI from the Instructions section.
75
+
76
+ <img class="video-screenshot" src="/assets/img/product/ask-navie-vscode.webp"/>
77
+
78
+ #### Via the JetBrains Tools menu option
79
+
80
+ You can open Navie by clicking on the JetBrains menu option `Tools` -> `AppMap`. From there you can select `Explain with AppMap Navie AI`
81
+
82
+ <img class="video-screenshot" src="/assets/img/product/tools-appmap-vscode.webp"/>
83
+
84
+ AppMap Navie will open as a new tab in your JetBrains editor.
85
+
86
+ <img class="video-screenshot" src="/assets/img/product/ask-navie-vscode-window.webp"/>
87
+
88
+ ## How to Generate the Highest Quality Answers
89
+
90
+ To generate the highest quality responses from Navie, we recommend the following approach.
91
+
92
+ - [Create AppMaps](#create-appmaps)
93
+ - [Ask Navie](#ask-navie)
94
+ - [Write Code](#write-code)
95
+ - [Repeat](#repeat)
96
+
97
+ ### Create AppMaps
98
+
99
+ We recommend creating maps that are most relevant to the question or area of the application you are going to be working with. For example, if i wanted to understand how my new user registration flow worked I could [create a remote recording](/docs/setup-appmap-in-your-code-editor/generate-appmaps-with-remote-recording) of a new user registration flow. Alternatively, I could [run all the test cases](/docs/setup-appmap-in-your-code-editor/generate-appmaps-from-tests) related to new user creation, registration, and adjacent areas.
100
+
101
+ Depending on your language and framework there [are up to 5 different ways](/docs/setup-appmap-in-your-code-editor/how-appmap-works.html#recording-methods) that you can record AppMaps for your application.
102
+
103
+ 1. **[Test Case Recording](/docs/setup-appmap-in-your-code-editor/generate-appmaps-from-tests.html)**: This method is particularly useful for automated testing environments. AppMap integrates with numerous testing frameworks, creating individual AppMaps for each test case run. These AppMaps include detailed information such as the test framework, test case names, and their outcomes, enabling a comprehensive overview of test coverage and facilitating easier debugging and performance optimization.
104
+
105
+ 2. **[Requests Recording](/docs/setup-appmap-in-your-code-editor/generate-appmaps-with-request-recording)**: Ideal for web applications, this method records each HTTP request processed by your application. By simply running your application with the AppMap agent and interacting with it—either manually or through automated scripts—you can generate a rich dataset of AppMaps that capture the full scope of your application's request handling.
106
+
107
+ 3. **[Remote Recording](https://appmap-io-pr-1253.onrender.com/docs/setup-appmap-in-your-code-editor/generate-appmaps-with-remote-recording)**: Similar to request recording but offering more control over the recording session. You initiate and stop recording via HTTP commands, allowing the inclusion of multiple requests and other non-HTTP activities within a single AppMap. This method is particularly suited for capturing detailed interactions within web applications, including background jobs and other processes.
108
+
109
+ 4. **Code Block Recording**: Provides the highest level of control, enabling you to specify exactly which blocks of code to record by inserting simple code snippets. This method requires source code access and is a powerful option for targeting specific functionalities or debugging complex issues. (Code Block recording is language specific, refer to [the language reference docs for examples](/docs/reference)).
110
+
111
+ 5. **Process Recording**: A broader approach that records all activity within the configured scope of your application, from startup to shutdown. This method is useful when other methods are not applicable or when you need a comprehensive capture of your application's behavior. (Process recording is language specific, refer to [the language reference docs for examples](/docs/reference)).
112
+
113
+ Each of these methods generates AppMaps in JSON format, which are then visualized through interactive diagrams in your code editor. This visualization supports a deep understanding of your application's architecture, dependencies, and runtime behavior, facilitating enhanced code quality and performance optimization.
114
+
115
+ ### Ask Navie
116
+
117
+ Navie, can address a wide range of questions about your application, extending beyond what static analysis AI assistants can provide, to understand dynamic interactions, dependencies, and performance bottlenecks to help your developers design and deliver solutions faster for a host of complex issues.
118
+
119
+ AppMap includes Dynamic Code Analysis rules which can be customized to flag specific code issues. Refer [to the AppMap rules reference](/docs/reference/analysis-rules) for a complete list of issues that can be identified.
120
+
121
+ **Examples of good questions to ask Navie.**
122
+
123
+ * Why is `behavior X` happening in dev and not in production?
124
+ * Why did the `feature x` return a 500 error?
125
+ * How can I make `feature x` use the database more efficiently?
126
+ * What can I do to optimize the queries on this page?
127
+ * Where does user registration happens in my code base?
128
+ * Provide a solution to add Google OAuth login support for my user login pages.
129
+ * Explain what functions or files are involved when a user logs into my service.
130
+ * Loading the "products" view page is slow in production, provide suggested guidance with relevant code changes I can make to improve the speed.
131
+
132
+ ### Write Code
133
+
134
+ Navie can do more than just provide code implementation details, you can talk to Navie about a variety of other topics as you are updating your application based on it's recommendations.
135
+
136
+ 1. **Identifying Components**: Navie can search through your AppMaps to highlight the files, methods, and external services interacting during the registration process, offering runtime sequence diagrams for clarity.
137
+
138
+ 2. **Implementation Guidance**: After identifying the areas of interest, you might need specific implementation advice. For instance, where and how to integrate third-party libraries into your existing codebase. Navie can provide detailed instructions on modifying settings files, updating URL configurations, and extending forms with new functionalities.
139
+
140
+ 3. **Debugging and Optimization**: Beyond initial implementation, Navie can assist in debugging by pointing out potential sources of errors or inefficiencies in the code paths triggered during user interactions.
141
+
142
+ 4. **Comparative Analysis and Recommendations**: By analyzing the runtime behavior and execution flow, Navie can offer recommendations to enhance performance, improve security, or reduce technical debt, backed by the rich data context of your application's actual operations.
143
+
144
+ 5. **Custom Queries**: Tailor your questions to fit unique development needs—whether you're troubleshooting a specific error, seeking optimization opportunities, or curious about the interactions between various components of your application.
145
+
146
+ ### Repeat
147
+
148
+ Continue to ask follow-up question to Navie as you are making code changes or when you need additional details or more specific advice. Additionally, as you make changes to your application, continue recording AppMaps of the updated code interactions and start new conversations with Navie to dive deeper into your feature implementation.
149
+
150
+ ## Next Steps
151
+
152
+ Watch: [Demo of using AppMap Navie to add a new feature to a complex application.](/docs/navie/demo)
@@ -0,0 +1,20 @@
1
+ ---
2
+ layout: docs
3
+ title: Docs - AppMap Navie
4
+ name: index
5
+ step: 1
6
+ ---
7
+
8
+ # AppMap Navie
9
+
10
+ AppMap Navie is the missing link that improves the power of AI code completers and code assistants. Leveraging the unique ability that AppMap has to understand your code's execution at runtime, Navie transforms this data into a powerhouse of hyper-personalized context-aware insights for AI-assisted coding.
11
+
12
+ That means you're not just working with static analysis anymore, and you're not looking at just individual files or functions. With Navie, you can understand the entire codebase at an architectural level, how it behaves and executes, and provide much more detailed answers to your software questions.
13
+
14
+ - [How Navie Works](/docs/navie/how-navie-works)
15
+ - [How to use Navie](/docs/navie/how-to-use-navie)
16
+ - [Video Demo](/docs/navie/demo)
17
+
18
+ **Install AppMap for your preferred code editor to get started.**
19
+
20
+ <a class="btn btn-primary btn-lg" href="https://appmap.io/get-appmap">Get AppMap</a>
@@ -0,0 +1,48 @@
1
+ ---
2
+ layout: docs
3
+ title: Docs - Reference
4
+ name: Analysis Labels
5
+ step: 14
6
+ reference: true
7
+ redirect_from: [/docs/analysis/labels-reference]
8
+ ---
9
+
10
+ # Label Reference
11
+ <ul class="toc">
12
+ {% for analysis_label in site.analysis_labels %}
13
+ <li>
14
+ <a href="#{{ analysis_label.name }}">{{analysis_label.name }}</a>
15
+ </li>
16
+ {% endfor %}
17
+ </ul>
18
+
19
+
20
+ <ul class="analysis-doc-list label">
21
+ {% for analysis_label in site.analysis_labels %}
22
+ <li class="analysis-label" id="{{ analysis_label.name }}">
23
+ <h2>
24
+ {{ analysis_label.name }}
25
+ </h2>
26
+
27
+ <div class="analysis-metrics">
28
+ <ul>
29
+ <li class="name">Rules</li>
30
+ <li class="value">
31
+ {% for rule in analysis_label.rules %}
32
+ <a href="./analysis-rules.html#{{rule}}">
33
+ {{ rule }}
34
+ </a>
35
+ <br/>
36
+ {% endfor %}
37
+ </li>
38
+ </ul>
39
+ </div>
40
+
41
+ {{ analysis_label.content | markdownify }}
42
+ </li>
43
+ <hr/>
44
+ {% endfor %}
45
+ </ul>
46
+
47
+
48
+
@@ -0,0 +1,60 @@
1
+ ---
2
+ layout: docs
3
+ title: Docs - Reference
4
+ name: Analysis Rules
5
+ step: 13
6
+ reference: true
7
+ ---
8
+
9
+ # Rules Reference
10
+ <ul class="toc">
11
+ {% for analysis_rule in site.analysis_rules %}
12
+ <li>
13
+ <a href="#{{ analysis_rule.rule }}">{{analysis_rule.name }}</a>
14
+ </li>
15
+ {% endfor %}
16
+ </ul>
17
+
18
+ <ul class="analysis-doc-list">
19
+ {% for analysis_rule in site.analysis_rules %}
20
+ <li class="analysis-rule" id="{{ analysis_rule.rule }}">
21
+ <h2>
22
+ {{ analysis_rule.name }}
23
+ </h2>
24
+
25
+ <div class="analysis-metrics">
26
+ <ul>
27
+ <li class="name">Id</li>
28
+ <li class="value">{{ analysis_rule.rule }}</li>
29
+ </ul>
30
+ <ul>
31
+ <li class="name">Impact Domain</li>
32
+ <li class="value">{{ analysis_rule.impactDomain }}</li>
33
+ </ul>
34
+ <ul>
35
+ <li class="name">Scope</li>
36
+ <li class="value">{{ analysis_rule.scope }}</li>
37
+ </ul>
38
+ <ul>
39
+ <li class="name">Labels</li>
40
+ <li class="value">
41
+ {% for label in analysis_rule.labels %}
42
+ <a href="./analysis-rules.html#{{ label }}">{{ label }}</a>
43
+ <br/>
44
+ {% endfor %}
45
+ </li>
46
+ </ul>
47
+ <ul>
48
+ <li class="name">References</li>
49
+ <li class="value">
50
+ {% for reference in analysis_rule.references %}
51
+ <a href="{{ reference[1] }}" target="_blank">{{ reference[0] }}</a>
52
+ {% endfor %}
53
+ </li>
54
+ </ul>
55
+ </div>
56
+ {{ analysis_rule.content | markdownify }}
57
+ </li>
58
+ <hr/>
59
+ {% endfor %}
60
+ </ul>