{"_id":"@azimutt/connector-oracle","_rev":"4-2e262dcdecc9e027ecc59edc2f5ed6ee","name":"@azimutt/connector-oracle","dist-tags":{"latest":"0.1.4"},"versions":{"0.1.0":{"name":"@azimutt/connector-oracle","version":"0.1.0","keywords":[],"author":{"url":"https://anthonyly.dev","name":"Anthony Ly","email":"anthonyly.dev@gmail.com"},"license":"MIT","_id":"@azimutt/connector-oracle@0.1.0","maintainers":[{"name":"sbouaked","email":"sbouaked@pm.me"},{"name":"loicknuchel","email":"loicknuchel@gmail.com"}],"homepage":"https://azimutt.app","bugs":{"url":"https://github.com/azimuttapp/azimutt/issues"},"dist":{"shasum":"722be31f9ad937acd02e5fa82c02e56f944b4eeb","tarball":"https://registry.npmjs.org/@azimutt/connector-oracle/-/connector-oracle-0.1.0.tgz","fileCount":38,"integrity":"sha512-KwsfcDIShr1D0h+oUNy9U6fLljahvgefHpINQh6HWQVLmer+U/MVQAo2/TF7UZd/rXwGnmU8EHJDW1p4VRT0tQ==","signatures":[{"sig":"MEYCIQDmSpaI028CGhZysFp3pPgJv6i20fUin4La4VN9lIa3AwIhAOJvWRrtRse97SwGhuoaUKGA6man+VE/NnstmotbFcRI","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":143469},"main":"./out/index.js","_from":"file:azimutt-connector-oracle-0.1.0.tgz","types":"./out/index.d.ts","scripts":{"test":"jest","build":"rm -rf ./out && tsc","dry-publish":"pnpm run build && pnpm test && pnpm pack","build:docker":"npx tsc"},"_npmUser":{"name":"loicknuchel","email":"loicknuchel@gmail.com"},"_resolved":"/tmp/9463c437fb8cdfcec2ddfe7f4cdea31f/azimutt-connector-oracle-0.1.0.tgz","_integrity":"sha512-KwsfcDIShr1D0h+oUNy9U6fLljahvgefHpINQh6HWQVLmer+U/MVQAo2/TF7UZd/rXwGnmU8EHJDW1p4VRT0tQ==","repository":{"url":"git+https://github.com/azimuttapp/azimutt.git","type":"git","directory":"libs/connector-oracle"},"_npmVersion":"10.3.0","description":"Connect to Oracle, extract schema, run analysis and queries","directories":{},"_nodeVersion":"21.6.0","dependencies":{"oracledb":"6.6.0","@azimutt/utils":"^0.1.3","@azimutt/models":"^0.1.11"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.2.3","typescript":"^5.5.4","@types/jest":"^29.5.12","@types/node":"^20.14.13","@jest/globals":"^29.7.0","@types/oracledb":"^6.5.1"},"_npmOperationalInternal":{"tmp":"tmp/connector-oracle_0.1.0_1722196003795_0.26586386880458734","host":"s3://npm-registry-packages"}},"0.1.1":{"name":"@azimutt/connector-oracle","version":"0.1.1","keywords":[],"author":{"url":"https://anthonyly.dev","name":"Anthony Ly","email":"anthonyly.dev@gmail.com"},"license":"MIT","_id":"@azimutt/connector-oracle@0.1.1","maintainers":[{"name":"sbouaked","email":"sbouaked@pm.me"},{"name":"loicknuchel","email":"loicknuchel@gmail.com"}],"homepage":"https://azimutt.app","bugs":{"url":"https://github.com/azimuttapp/azimutt/issues"},"dist":{"shasum":"eefbc937b4607c75dc4d0ad49abfe3bca343f4a3","tarball":"https://registry.npmjs.org/@azimutt/connector-oracle/-/connector-oracle-0.1.1.tgz","fileCount":38,"integrity":"sha512-lsuDN49RzUyzqCyX0Mzca5sAJKh0Ru02zdCENOivbZ+q5OkOkRJm5qg0eiNJDxlz30kfSY/CPzGEyu8eEtTigw==","signatures":[{"sig":"MEYCIQC+HQ8XnO4Dg40+XBH2KxsFo7WCZ+T3E8ccS5ERarBFKAIhAJi+m2wGI16Vw1l1BzbSmH43u9tQXlQMtbOY3TZEYGA5","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":141777},"main":"./out/index.js","_from":"file:azimutt-connector-oracle-0.1.1.tgz","types":"./out/index.d.ts","scripts":{"test":"jest","build":"rm -rf ./out && tsc","dry-publish":"pnpm run build && pnpm test && pnpm pack","build:docker":"npx tsc"},"_npmUser":{"name":"loicknuchel","email":"loicknuchel@gmail.com"},"_resolved":"/tmp/7fc12480d9c8acc1fe4f45bb1887e92c/azimutt-connector-oracle-0.1.1.tgz","_integrity":"sha512-lsuDN49RzUyzqCyX0Mzca5sAJKh0Ru02zdCENOivbZ+q5OkOkRJm5qg0eiNJDxlz30kfSY/CPzGEyu8eEtTigw==","repository":{"url":"git+https://github.com/azimuttapp/azimutt.git","type":"git","directory":"libs/connector-oracle"},"_npmVersion":"10.3.0","description":"Connect to Oracle, extract schema, run analysis and queries","directories":{},"_nodeVersion":"21.6.0","dependencies":{"oracledb":"6.6.0","@azimutt/utils":"^0.1.4","@azimutt/models":"^0.1.12"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.2.4","typescript":"^5.5.4","@types/jest":"^29.5.12","@types/node":"^22.1.0","@jest/globals":"^29.7.0","@types/oracledb":"^6.5.1"},"_npmOperationalInternal":{"tmp":"tmp/connector-oracle_0.1.1_1722795963273_0.4406581875531428","host":"s3://npm-registry-packages"}},"0.1.2":{"name":"@azimutt/connector-oracle","version":"0.1.2","keywords":[],"author":{"url":"https://anthonyly.dev","name":"Anthony Ly","email":"anthonyly.dev@gmail.com"},"license":"MIT","_id":"@azimutt/connector-oracle@0.1.2","maintainers":[{"name":"sbouaked","email":"sbouaked@pm.me"},{"name":"loicknuchel","email":"loicknuchel@gmail.com"}],"homepage":"https://azimutt.app","bugs":{"url":"https://github.com/azimuttapp/azimutt/issues"},"dist":{"shasum":"7da524ef15603248447ceeb16c545bf2c011f760","tarball":"https://registry.npmjs.org/@azimutt/connector-oracle/-/connector-oracle-0.1.2.tgz","fileCount":38,"integrity":"sha512-/aHOZibcORwL2c6bSnefGB5p8cuFayIZA498EVSYLoXlctZhXwbd/KfDS5WXDhNc7YABsUfMUOH08zNmh9hgAA==","signatures":[{"sig":"MEUCIQC1v9zZT3FN+hSofQPBa6vpHVWT2J7D59KS8J3XeENNwwIgNkup7txfGI17hmIUe8x8CtY71UuGUt4VSxlsjKR3vy0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":143145},"main":"./out/index.js","_from":"file:azimutt-connector-oracle-0.1.2.tgz","types":"./out/index.d.ts","scripts":{"test":"jest","build":"rm -rf ./out && tsc","dry-publish":"pnpm run build && pnpm test && pnpm pack","build:docker":"npx tsc"},"_npmUser":{"name":"loicknuchel","email":"loicknuchel@gmail.com"},"_resolved":"/tmp/300f9fa1101277a267a627fecf107c71/azimutt-connector-oracle-0.1.2.tgz","_integrity":"sha512-/aHOZibcORwL2c6bSnefGB5p8cuFayIZA498EVSYLoXlctZhXwbd/KfDS5WXDhNc7YABsUfMUOH08zNmh9hgAA==","repository":{"url":"git+https://github.com/azimuttapp/azimutt.git","type":"git","directory":"libs/connector-oracle"},"_npmVersion":"10.3.0","description":"Connect to Oracle, extract schema, run analysis and queries","directories":{},"_nodeVersion":"21.6.0","dependencies":{"oracledb":"6.6.0","@azimutt/utils":"^0.1.5","@azimutt/models":"^0.1.14"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.2.4","typescript":"^5.5.4","@types/jest":"^29.5.12","@types/node":"^22.1.0","@jest/globals":"^29.7.0","@types/oracledb":"^6.5.1"},"_npmOperationalInternal":{"tmp":"tmp/connector-oracle_0.1.2_1724777063115_0.021634945848271192","host":"s3://npm-registry-packages"}},"0.1.3":{"name":"@azimutt/connector-oracle","version":"0.1.3","keywords":[],"author":{"url":"https://anthonyly.dev","name":"Anthony Ly","email":"anthonyly.dev@gmail.com"},"license":"MIT","_id":"@azimutt/connector-oracle@0.1.3","maintainers":[{"name":"sbouaked","email":"sbouaked@pm.me"},{"name":"loicknuchel","email":"loicknuchel@gmail.com"}],"homepage":"https://azimutt.app","bugs":{"url":"https://github.com/azimuttapp/azimutt/issues"},"dist":{"shasum":"6d46d6ae9fec373c1f9d8079431aa4ac27e52126","tarball":"https://registry.npmjs.org/@azimutt/connector-oracle/-/connector-oracle-0.1.3.tgz","fileCount":38,"integrity":"sha512-bOdchmBj/xEBa19sohA58g7TQ5FeDzyfosbG91pdHrrtI214MsrJ9UCj0qbPSDrlUovwSPaFU0nCJqpMAA5wXQ==","signatures":[{"sig":"MEUCIQCNLBJMtk0if8qU8gJNIhBeStp4/pTwofhDEHwUUoEueQIgOGtuqy5kUiWU4/bEf4jYQF4WmCjS1k3V6Rm5LnjN0Bw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":142851},"main":"./out/index.js","_from":"file:azimutt-connector-oracle-0.1.3.tgz","types":"./out/index.d.ts","scripts":{"test":"jest","build":"rm -rf ./out && tsc","dry-publish":"pnpm run build && pnpm test && pnpm pack","build:docker":"npx tsc"},"_npmUser":{"name":"loicknuchel","email":"loicknuchel@gmail.com"},"_resolved":"/tmp/259c9ef4587aee407c7dc664def1a293/azimutt-connector-oracle-0.1.3.tgz","_integrity":"sha512-bOdchmBj/xEBa19sohA58g7TQ5FeDzyfosbG91pdHrrtI214MsrJ9UCj0qbPSDrlUovwSPaFU0nCJqpMAA5wXQ==","repository":{"url":"git+https://github.com/azimuttapp/azimutt.git","type":"git","directory":"libs/connector-oracle"},"_npmVersion":"10.3.0","description":"Connect to Oracle, extract schema, run analysis and queries","directories":{},"_nodeVersion":"21.6.0","dependencies":{"oracledb":"6.6.0","@azimutt/utils":"^0.1.6","@azimutt/models":"^0.1.15"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.2.5","typescript":"^5.6.2","@types/jest":"^29.5.13","@types/node":"^22.7.4","@jest/globals":"^29.7.0","@types/oracledb":"^6.5.1"},"_npmOperationalInternal":{"tmp":"tmp/connector-oracle_0.1.3_1727633057295_0.8571691101069421","host":"s3://npm-registry-packages"}},"0.1.4":{"name":"@azimutt/connector-oracle","description":"Connect to Oracle, extract schema, run analysis and queries","version":"0.1.4","license":"MIT","homepage":"https://azimutt.app","keywords":[],"main":"./out/index.js","types":"./out/index.d.ts","dependencies":{"oracledb":"6.6.0","@azimutt/models":"^0.1.19","@azimutt/utils":"^0.1.8"},"devDependencies":{"@jest/globals":"^29.7.0","@types/jest":"^29.5.14","@types/node":"^22.10.1","@types/oracledb":"^6.5.2","jest":"^29.7.0","ts-jest":"^29.2.5","typescript":"^5.7.2"},"repository":{"type":"git","url":"git+https://github.com/azimuttapp/azimutt.git","directory":"libs/connector-oracle"},"author":{"name":"Anthony Ly","email":"anthonyly.dev@gmail.com","url":"https://anthonyly.dev"},"scripts":{"test":"jest","build":"rm -rf ./out && tsc","build:docker":"npx tsc","dry-publish":"pnpm run build && pnpm test && pnpm pack"},"_id":"@azimutt/connector-oracle@0.1.4","bugs":{"url":"https://github.com/azimuttapp/azimutt/issues"},"_integrity":"sha512-uqDTiRneurQ0or/tfek7dsH4/f76zgidphNcivz0JUDvaypmcKCMSknk/Qpa2+Ef7saUc1nCiFBuhw5ODUi2aQ==","_resolved":"/tmp/eb3b0326a71e9df2bdf55b3cc3573f58/azimutt-connector-oracle-0.1.4.tgz","_from":"file:azimutt-connector-oracle-0.1.4.tgz","_nodeVersion":"22.11.0","_npmVersion":"11.0.0","dist":{"integrity":"sha512-uqDTiRneurQ0or/tfek7dsH4/f76zgidphNcivz0JUDvaypmcKCMSknk/Qpa2+Ef7saUc1nCiFBuhw5ODUi2aQ==","shasum":"655707175fe2bced8589cb196b8595f60a44c5ab","tarball":"https://registry.npmjs.org/@azimutt/connector-oracle/-/connector-oracle-0.1.4.tgz","fileCount":38,"unpackedSize":147258,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCRENdqd2TVi42z+0l8QMxUBsREiLwS889pEApgfbdCfAIhAKW+3PiHilRK9WrTvQioAAg6xKGLbooET0uF6GA9iQzb"}]},"_npmUser":{"name":"loicknuchel","email":"loicknuchel@gmail.com"},"directories":{},"maintainers":[{"name":"loicknuchel","email":"loicknuchel@gmail.com"},{"name":"sbouaked","email":"sbouaked@pm.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/connector-oracle_0.1.4_1739208191997_0.6299213270046531"},"_hasShrinkwrap":false}},"time":{"created":"2024-07-28T19:46:43.626Z","modified":"2025-02-10T17:23:12.429Z","0.1.0":"2024-07-28T19:46:43.929Z","0.1.1":"2024-08-04T18:26:03.417Z","0.1.2":"2024-08-27T16:44:23.292Z","0.1.3":"2024-09-29T18:04:17.525Z","0.1.4":"2025-02-10T17:23:12.187Z"},"bugs":{"url":"https://github.com/azimuttapp/azimutt/issues"},"author":{"name":"Anthony Ly","email":"anthonyly.dev@gmail.com","url":"https://anthonyly.dev"},"license":"MIT","homepage":"https://azimutt.app","keywords":[],"repository":{"type":"git","url":"git+https://github.com/azimuttapp/azimutt.git","directory":"libs/connector-oracle"},"description":"Connect to Oracle, extract schema, run analysis and queries","maintainers":[{"name":"loicknuchel","email":"loicknuchel@gmail.com"},{"name":"sbouaked","email":"sbouaked@pm.me"}],"readme":"# Oracle connector\n\nThis library allows to connect to [Oracle](https://www.oracle.com/database), extract its schema and more...\n\nIt lists all schemas, tables, columns, relations and types and format them in a JSON Schema.\n\nThis library is made by [Azimutt](https://azimutt.app) to allow people to explore their Oracle database.\nIt's accessible through the [Desktop app](../../extensions/desktop) (soon), the [CLI](https://www.npmjs.com/package/azimutt) or even the website using the [gateway](../../gateway) server.\n\n**Feel free to use it and even submit PR to improve it:**\n\n- improve [Oracle queries](./src/oracle.ts) (look at `getSchema` function)\n\n## Publish\n\n- update `package.json` version\n- update lib versions (`pnpm -w run update` + manual)\n- test with `pnpm run dry-publish` and check `azimutt-connector-oracle-x.y.z.tgz` content\n- launch `pnpm publish --no-git-checks --access public`\n\nView it on [npm](https://www.npmjs.com/package/@azimutt/connector-oracle).\n\n## Dev\n\nIf you need to develop on multiple libs at the same time (ex: want to update a connector and try it through the CLI), depend on local libs but publish & revert before commit.\n\n- Depend on a local lib: `pnpm add <lib>`, ex: `pnpm add @azimutt/models`\n- \"Publish\" lib locally by building it: `pnpm run build`\n\n## Local Setup\n\n### 1. Run in Docker\n\nYou can use the [Oracle Database free version](https://container-registry.oracle.com/ords/ocr/ba/database):\n\n```bash\ndocker run --name oracle_sample -p 1521:1521 -e ORACLE_PWD=oracle container-registry.oracle.com/database/free:23.4.0.0-lite\n```\n\nor\n\n```bash\ndocker run --name oracle_sample -p 1521:1521 -e ORACLE_PWD=oracle container-registry.oracle.com/database/free:latest\n```\n\n### 2. Setup your database\n\nConnect with host (`localhost`), port (`1521`), user (`SYSTEM`) and pass (`oracle`), then create a user and grand useful rights:\n\n```oracle\nCREATE USER C##azimutt IDENTIFIED BY azimutt;\nGRANT UNLIMITED TABLESPACE TO C##azimutt;\nCREATE ROLE C##azimutt_role;\nGRANT CREATE SESSION, CREATE TABLE, CREATE SEQUENCE, CREATE VIEW, CREATE MATERIALIZED VIEW, CREATE TYPE, CREATE TRIGGER to C##azimutt_role;\nGRANT C##azimutt_role TO C##azimutt;\n```\n\n### 3. Fill your database\n\nConnect with host (`localhost`), port (`1521`), user (`C##azimutt`) and pass (`azimutt`) or using `oracle:thin:C##azimutt/azimutt@localhost:1521`, then add some tables and data:\n\n```oracle\nCREATE TYPE tag_list_t AS VARRAY(10) OF VARCHAR2(20);\nALTER TYPE tag_list_t MODIFY LIMIT 12;\nCREATE TYPE address_t AS OBJECT (\n    street VARCHAR2(200),\n    city   VARCHAR2(200),\n    state  CHAR(2),\n    zip    VARCHAR2(20)\n);\n\nCREATE TABLE users (\n    id              NUMBER GENERATED BY DEFAULT AS IDENTITY,\n    name            VARCHAR2(50)            NOT NULL,\n    role            VARCHAR2(10)            NOT NULL,\n    email           VARCHAR2(255)           NOT NULL,\n    email_confirmed BOOLEAN   DEFAULT false NOT NULL,\n    settings        JSON,\n    created_at      TIMESTAMP DEFAULT systimestamp,\n    PRIMARY KEY (id),\n    CONSTRAINT users_lower_email_chk CHECK (email = LOWER(email)),\n    CHECK (name <> email)\n);\nCOMMENT ON TABLE users IS 'List all users';\nCOMMENT ON COLUMN users.name IS 'The user name';\nCREATE UNIQUE INDEX users_email_uniq ON users (email);\nCREATE INDEX users_role_idx ON users (role);\nCREATE INDEX users_plan_idx ON users (json_value(settings, '$.plan.name'));\nCREATE INDEX users_full_idx ON users (name, email, json_value(settings, '$.plan.name'), json_value(settings, '$.color'));\n\nCREATE VIEW admins AS SELECT id, name, email FROM users WHERE role = 'admin';\nCOMMENT ON TABLE admins IS 'Only admins';\n\nCREATE MATERIALIZED VIEW guests AS SELECT id, name, email FROM users WHERE role = 'guest';\nCOMMENT ON MATERIALIZED VIEW guests IS 'Only guests';\n\n\nCREATE TABLE posts (\n    id         NUMBER GENERATED BY DEFAULT AS IDENTITY,\n    title      VARCHAR2(50) NOT NULL,\n    content    CLOB,\n    created_at TIMESTAMP DEFAULT systimestamp,\n    created_by NUMBER       NOT NULL,\n    PRIMARY KEY (id),\n    CONSTRAINT posts_created_by_fk FOREIGN KEY (created_by) REFERENCES users (id)\n);\n\nCREATE TABLE post_authors (\n    post_id NUMBER,\n    user_id NUMBER,\n    CONSTRAINT post_authors_pk PRIMARY KEY (post_id, user_id),\n    CONSTRAINT post_authors_post_id_fk FOREIGN KEY (post_id) REFERENCES posts (id),\n    CONSTRAINT post_authors_user_id_fk FOREIGN KEY (user_id) REFERENCES users (id)\n);\n\nCREATE TABLE post_author_details (\n    detail_post_id NUMBER,\n    detail_user_id NUMBER,\n    role           VARCHAR2(10) NOT NULL,\n    CONSTRAINT post_author_details_pk PRIMARY KEY (detail_post_id, detail_user_id),\n    CONSTRAINT post_author_details_post_user_fk FOREIGN KEY (detail_post_id, detail_user_id) REFERENCES post_authors (post_id, user_id)\n);\n\nCREATE TABLE ratings (\n    user_id   NUMBER       NOT NULL,\n    item_kind VARCHAR2(50) NOT NULL,\n    item_id   NUMBER       NOT NULL,\n    rating    NUMBER       NOT NULL CHECK ( 0 <= rating AND rating <= 5 ),\n    review    VARCHAR2(255),\n    CONSTRAINT ratings_pk PRIMARY KEY (user_id, item_kind, item_id),\n    CONSTRAINT ratings_user_id_fk FOREIGN KEY (user_id) REFERENCES users (id)\n);\nALTER TABLE ratings ADD CONSTRAINT ratings_item_id_users_fk FOREIGN KEY (item_id) REFERENCES users (id) DISABLE NOVALIDATE;\nALTER TABLE ratings ADD CONSTRAINT ratings_item_id_posts_fk FOREIGN KEY (item_id) REFERENCES posts (id) DISABLE NOVALIDATE;\n\n\n-- Insert data\nINSERT INTO users (name, role, email, settings) VALUES ('Loïc', 'admin', 'loic@mail.com', '{\"color\": \"red\", \"plan\": {\"id\": 1, \"name\": \"pro\"}}');\nINSERT INTO users (name, role, email, settings) VALUES ('Jean', 'guest', 'jean@mail.com', null);\nINSERT INTO users (name, role, email, settings) VALUES ('Luc', 'guest', 'luc@mail.com', null);\nINSERT INTO posts (title, content, created_by) VALUES ('Oracle connector', null, 1);\nINSERT INTO post_authors (post_id, user_id) VALUES (1, 1);\nINSERT INTO post_authors (post_id, user_id) VALUES (1, 2);\nINSERT INTO post_author_details (detail_post_id, detail_user_id, role) VALUES (1, 1, 'author');\nINSERT INTO ratings (user_id, item_kind, item_id, rating) VALUES (3, 'posts', 1, 4);\nINSERT INTO ratings (user_id, item_kind, item_id, rating) VALUES (3, 'users', 1, 5);\n```\n\nRemove everything with:\n\n```oracle\nDROP MATERIALIZED VIEW guests;\nDROP VIEW admins;\nDROP TABLE ratings;\nDROP TABLE post_author_details;\nDROP TABLE post_authors;\nDROP TABLE posts;\nDROP TABLE users;\nDROP TYPE address_t;\nDROP TYPE tag_list_t;\n```\n","readmeFilename":"README.md"}