Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions .astro/astro/content.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -425,6 +425,20 @@ declare module 'astro:content' {
collection: "docs";
data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"extensions/ibmi-fs/index.mdx": {
id: "extensions/ibmi-fs/index.mdx";
slug: "extensions/ibmi-fs";
body: string;
collection: "docs";
data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"extensions/ibmi-fs/objects.mdx": {
id: "extensions/ibmi-fs/objects.mdx";
slug: "extensions/ibmi-fs/objects";
body: string;
collection: "docs";
data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"extensions/renderer/index.mdx": {
id: "extensions/renderer/index.mdx";
slug: "extensions/renderer";
Expand Down Expand Up @@ -537,6 +551,20 @@ declare module 'astro:content' {
collection: "docs";
data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"tips/secure.mdx": {
id: "tips/secure.mdx";
slug: "tips/secure";
body: string;
collection: "docs";
data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"tips/secure_ssh.mdx": {
id: "tips/secure_ssh.mdx";
slug: "tips/secure_ssh";
body: string;
collection: "docs";
data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"tips/setup.mdx": {
id: "tips/setup.mdx";
slug: "tips/setup";
Expand Down
2 changes: 1 addition & 1 deletion .astro/settings.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"_variables": {
"lastUpdateCheck": 1773776142351
"lastUpdateCheck": 1775676910082
}
}
40 changes: 35 additions & 5 deletions astro.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -130,22 +130,52 @@ export default defineConfig({
},
{
label: 'Browsers',
autogenerate: { directory: 'browsers/' },
items: [
{
label: 'IBM i Browsers',
link: 'browsers/',
},
{
label: 'Object Browser',
link: 'browsers/object-browser/',
},
{
label: 'IFS Browser',
link: 'browsers/ifs-browser/',
},
{
label: 'User Library List',
link: 'browsers/user-library-list/',
},
{
label: 'Go To File',
link: 'browsers/goToFile/',
},
{
label: 'IBM i FileSystem',
autogenerate: { directory: 'extensions/ibmi-fs/' },
collapsed: true,
badge: {
text: 'NEW',
variant: 'tip'
},
},
],
collapsed: false,
},
{
label: 'Languages',
items: [
{
label: 'RPGLE',
autogenerate: { directory: 'extensions/rpgle/' },
autogenerate: { directory: 'extensions/rpgle/' },
collapsed: true,
},
{
{
label: 'CLLE',
link: 'extensions/clle'
},
{
{
label: 'Renderer',
link: 'extensions/renderer',
badge: {
Expand All @@ -155,7 +185,7 @@ export default defineConfig({
},
{
label: 'Db2 for i',
autogenerate:{ directory: 'extensions/db2i/'},
autogenerate:{ directory: 'extensions/db2i/'},
collapsed: true,
badge: {
text: 'New AI',
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
195 changes: 195 additions & 0 deletions src/content/docs/extensions/ibmi-fs/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,195 @@
---
title: IBM i FileSystem
sidebar:
order: 1
hero:
title: IBM i FileSystem
tagline: Advanced functionality for viewing and managing objects inside the IBM i QSYS file system
image:
html: '<img src="https://github.com/codefori/vscode-ibmi-fs/blob/main/icon.png?raw=true" width="250" />'
---

import { CardGrid, Card, Tabs, TabItem, LinkCard } from '@astrojs/starlight/components';
import { Aside } from '@astrojs/starlight/components';
import { Icon } from '@astrojs/starlight/components';

The IBM i FileSystem extension provides advanced functionality for viewing and managing objects inside the IBM i QSYS file system. It extends the base Code for IBM i extension with specialized editors and operations for various IBM i object types.

## Install

The extension can be [installed from the Marketplace](https://marketplace.visualstudio.com/items?itemName=halcyontechltd.vscode-ibmi-fs)<Icon name="external" color="cyan" class="icon-inline" /> and is also part of the [IBM i Development Pack](https://marketplace.visualstudio.com/items?itemName=HalcyonTechLtd.ibm-i-development-pack)<Icon name="external" color="cyan" class="icon-inline" />.

<Aside type="note">
This extension requires the [Code for IBM i](https://marketplace.visualstudio.com/items?itemName=HalcyonTechLtd.code-for-ibmi) extension to be installed and connected to an IBM i system.
</Aside>

## Usage

Once connected to your IBM i system using Code for IBM i:

1. Navigate to the **Object Browser**
2. Browse to any supported object type
3. Click on the object to open it in the custom editor
4. Use the **Action Bar** (top right) to perform object-specific operations

---

## Supported Object Types

The extension supports **22 different IBM i object types** with comprehensive viewing capabilities and interactive actions. Below is a summary table of all supported object types:

| Object Type | Type Code | Actions | Description |
|-------------|-----------|---------|-------------|
| 📦 Save Files | `*SAVF` | ✅ | Store and manage saved objects and libraries |
| 📨 Data Queues | `*DTAQ` | ✅ | Inter-process communication queues |
| 📝 Data Areas | `*DTAARA` | ✅ | Shared data storage objects |
| 🖨️ Output Queues | `*OUTQ` | ✅ | Manage spooled files and printer output |
| 📋 Job Queues | `*JOBQ` | ✅ | Manage batch jobs waiting to be processed |
| 💾 User Spaces | `*USRSPC` | ✅ | Temporary or permanent data storage |
| 🔑 User Indexes | `*USRIDX` | ✅ | Fast keyed access to user-defined entries |
| 📄 Message Files | `*MSGF` | ❌ | Predefined application messages |
| 💬 Message Queues | `*MSGQ` | ✅ | Store and manage system/user messages |
| 🔗 Binding Directories | `*BNDDIR` | ✅ | Lists of service programs and modules |
| 🔧 Programs | `*PGM` | ❌ | Executable program objects |
| 🔧 Service Programs | `*SRVPGM` | ❌ | Shared executable code libraries |
| 🧩 Modules | `*MODULE` | ❌ | Compiled ILE objects |
| ⚙️ Commands | `*CMD` | ❌ | IBM i CL command definitions |
| 📄 Job Descriptions | `*JOBD` | ❌ | Runtime environment for batch jobs |
| 📓 Journal Receivers | `*JRNRCV` | ❌ | Store journal entries for recovery |
| 📓 Journals | `*JRN` | ✅ | Record changes for auditing and recovery |
| 🌐 DDM Files | `*DDMF` | ❌ | Access files on remote systems |
| 🖥️ Subsystem Descriptions | `*SBSD` | ✅ | Define independent operating environments |
| 🎯 Classes | `*CLS` | ❌ | Runtime attributes for batch jobs |
| 📁 Files | `*FILE` | ✅ | Physical/logical files, views, and indexes |
| 🔍 Query Definitions | `*QRYDFN` | ✅ | Query/400 database query definitions |

**Legend:**
- ✅ **Actions Available** - Interactive operations (create, modify, delete, send, clear, etc.)
- ❌ **View Only** - Read-only information display

<Aside type="tip">
For detailed information about each object type, including all available features and actions, see the [**Object Details**](./objects/) page.
</Aside>

---

## Display Object *Generic* Information

A generic action available for **all object types** (yes, even those not supported) that provides comprehensive information similar to the WRKOBJ/DSPOBJD command.

<CardGrid>
<Card title="📊 Information Tab">

View detailed object information:
- Owner and definer
- Creation date and time
- Object size and attributes
- Text description
- Object type and library
- Source file information (if applicable)

</Card>

<Card title="🔒 Locks Tab">

View all locks on the object:
- Lock state and status
- Lock scope (shared/exclusive)
- Job holding the lock
- User and job number
- Lock timestamp

</Card>

<Card title="👥 Authorizations Tab">

View object authorizations:
- User and group authorities
- Specific permissions (*READ, *ADD, *UPD, *DLT, *EXECUTE, etc.)
- Authorization list information
- Public authority settings

</Card>

<Card title="📅 Usage Statistics">

View object usage information:
- Last used timestamp
- Days used count
- Save and restore timestamps
- Last change date

</Card>
</CardGrid>

![Information Tab - View detailed object information](./images/Info.png)
*Information Tab - View detailed object information including owner, creation date, size and attributes*

![Locks Tab - View all active locks on the object](./images/Locks.png)
*Locks Tab - View all active locks on the object with state, scope and job holding the lock*

![Authorizations Tab - View object authorizations](./images/auth.png)
*Authorizations Tab - View user and group authorities with specific permissions*

### How to Access

There are two ways to access object information:

<Tabs>
<TabItem label="Keyboard Shortcut">

Press **`Ctrl+Shift+D`** (Windows/Linux) or **`Cmd+Shift+D`** (Mac):

1. Enter the library name
2. Enter the object name
3. Select the object type
4. View the information in a multi-tab interface

This provides quick access without navigating the Object Browser.

</TabItem>

<TabItem label="Object Browser">

Right-click on any object in the Object Browser and select **"Additional Information"** from the context menu.

![Object Browser](./images/ObjectBrowser.png)

</TabItem>
</Tabs>

---

## View Object Details and Actions

To view the **detailed object content** and **interact with object-specific actions**, **click directly on the object** in the Object Browser. This will open the custom editor for that object type, where you can:

- View the complete object content
- Use the **Action Bar** (top right) to perform operations
- Edit and modify the object (when applicable)
- Access object-specific features and tools

![Object Details Editor](./images/ObjDtl.png)
*Object Details Editor - Click on an object to open the custom editor with full content and interactive actions*

<Aside type="caution">
**Filter Restrictions**: Modification actions are subject to filter settings. If a filter has protected a library as read-only, you will not be able to use modification actions on objects within that library.
</Aside>

---

## Localization

This extension supports multiple languages through VSCode's built-in localization framework.

### Supported Languages

- 🇬🇧 **English** (default)
- 🇮🇹 **Italian**
- 🇫🇷 **French**
- 🇩🇪 **German**
- 🇪🇸 **Spanish**
- 🇯🇵 **Japanese**
- 🇰🇷 **Korean**
- 🇧🇷 🇵🇹 **Brazilian Portuguese**
- 🇨🇳 **Simplified and Traditional Chinese**
Loading